[ESBJAVA-4722] Support transport.jms.ConcurrentConsumers in inbound endpoint Created: 02/Jul/16  Updated: 02/Jul/16

Status: Open
Project: WSO2 ESB
Component/s: None
Affects Version/s: 5.0.0-Beta
Fix Version/s: None

Type: Improvement Priority: High
Reporter: Manu Perera Assignee: Eranda Rajapakshe
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Severity: Major
Estimated Complexity: Moderate
Test cases added: Yes

 Description   

In axis2 it was possible to set concurrent consumers to a JMS endpoint. But I don't see this option in inbound endpoint UI.

(When implemented please make sure it works with topics as well)






[ESBJAVA-4721] When converting xml to JSON ESB is not identifying array with single element as an array. Created: 01/Jul/16  Updated: 01/Jul/16

Status: Open
Project: WSO2 ESB
Component/s: None
Affects Version/s: 5.0.0-Beta
Fix Version/s: None

Type: Improvement Priority: Normal
Reporter: Nipun Thameera Assignee: Chanaka Fernando
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Severity: Major
Estimated Complexity: Moderate
Test cases added: Yes

 Description   

Given a situation when making a request to ESB with JSON payload, and under the hood ESB is building this payload (JSON > XML > JSON) before sending it to the back end.

When ESB is converting JSON payload (with an array which only has single element in it) to xml it will be transform as an single xml entry.
So problem is when converting this XML back to JSON it is not possible to differentiate whether that entry is an attribute or an array. Hence ESB fail to transform the xml to the format of the original JSON payload.

Solution for this is adding xml instructions( <?xml-multiple?>) when converting JSON to XML. Please find below example.

JSON payload

{"users": {"user": ["user1"]}}

Converted XML(without instructions.)

<users>
    <user>user1</user>
</users>

Converted XML(with xml instructions)

<users>
    <?xml-multiple?>
    <user>user1</user>
</users>

Currently this has to be done by adding xslt mediator in ESB and moreover this mediator is payload independent. Hence customers have to write the xslt mediators specifically for every payload which has single array element in it.

So if we can check before transforming, whether JSON payload has an array with single element and if yes, adding the xml instruction when converting JSON to xml by default will prevent the additional overhead of writing xslt mediators.






[ESBJAVA-4720] Skip processing sub folders in ESB vfs transport Created: 30/Jun/16  Updated: 30/Jun/16  Resolved: 30/Jun/16

Status: Closed
Project: WSO2 ESB
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Normal
Reporter: Rajith Vitharana Assignee: Rajith Vitharana
Resolution: Duplicate Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Severity: Major
Estimated Complexity: Moderate
Test cases added: Yes

 Description   

currently sub folders also gets processed in vfs transport, need to avoid that



 Comments   
Comment by Rajith Vitharana [ 30/Jun/16 ]

duplicate issue - https://wso2.org/jira/browse/ESBJAVA-4669





[ESBJAVA-4719] Max-Size-Filter for ESB vfs transport Created: 30/Jun/16  Updated: 30/Jun/16  Resolved: 30/Jun/16

Status: Resolved
Project: WSO2 ESB
Component/s: None
Affects Version/s: None
Fix Version/s: 5.0.0, 5.0.0-Pre-RC

Type: Improvement Priority: Normal
Reporter: Rajith Vitharana Assignee: Rajith Vitharana
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Severity: Major
Estimated Complexity: Moderate
Test cases added: Yes

 Description   

Process files only are smaller than given size



 Comments   
Comment by Rajith Vitharana [ 30/Jun/16 ]

Fixed with git pull - https://github.com/wso2/wso2-synapse/pull/573/
commit - caab2ca176b718ca282fd53b284fc0ddbb822ba4





[ESBJAVA-4718] Adding none action to VFS transport Created: 30/Jun/16  Updated: 30/Jun/16  Resolved: 30/Jun/16

Status: Resolved
Project: WSO2 ESB
Component/s: None
Affects Version/s: None
Fix Version/s: 5.0.0, 5.0.0-Pre-RC

Type: Improvement Priority: Normal
Reporter: Rajith Vitharana Assignee: Rajith Vitharana
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Severity: Major
Estimated Complexity: Moderate
Test cases added: Yes

 Description   

There is no NONE action in ESB vfs transport, Only possible values are DELETE and MOVE



 Comments   
Comment by Rajith Vitharana [ 30/Jun/16 ]

Fixed with git pull - https://github.com/wso2/wso2-synapse/pull/573/
commit - caab2ca176b718ca282fd53b284fc0ddbb822ba4





[ESBJAVA-4717] DOS Safety in ESB vfs transport Created: 30/Jun/16  Updated: 30/Jun/16  Resolved: 30/Jun/16

Status: Resolved
Project: WSO2 ESB
Component/s: None
Affects Version/s: None
Fix Version/s: 5.0.0, 5.0.0-Pre-RC

Type: Improvement Priority: Normal
Reporter: Rajith Vitharana Assignee: Rajith Vitharana
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Severity: Major
Estimated Complexity: Moderate
Test cases added: Yes

 Description   

assume there are 100.000 files in a directory. ESB scans every 5 seconds. With the start of the scan there is no way to stop VFS processing these 100.000 files



 Comments   
Comment by Rajith Vitharana [ 30/Jun/16 ]

Fixed with pull - https://github.com/wso2/wso2-synapse/pull/590
commit - 3dfa3cfd32cbccbc67b8d90c397b065c258cff21
to wso2-synapse

Fix is to check whether the proxy is deactivated or not before processing every file. So there are many files in the folder and if you need to stop the process in the middle, then what you have to do is simply deactivate the proxy service





[ESBJAVA-4716] When a GET request received with delayed payload, next request fail with incorrect request line Created: 30/Jun/16  Updated: 30/Jun/16

Status: Open
Project: WSO2 ESB
Component/s: None
Affects Version/s: 4.8.1
Fix Version/s: None

Type: Bug Priority: High
Reporter: Jagath Ariyarathne Assignee: Jagath Ariyarathne
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Severity: Major
Estimated Complexity: Moderate
Test cases added: Yes

 Description   

If there are GET requests received with a payload and the payload is received with a delay after the headers (ex: payload received while ESB is writing the response back), that payload is appended to the next request's request line and fails.

Since it is a GET request, ESB (underlying http-core-nio) does not wait for the payload and start processing the request.






[ESBJAVA-4715] Supporting registry based parameter values in all Inbound Endpoints Created: 30/Jun/16  Updated: 01/Jul/16

Status: Open
Project: WSO2 ESB
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Highest
Reporter: Kasun Indrasiri Assignee: Chanaka Fernando
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Severity: Blocker
Estimated Complexity: Moderate
Test cases added: Yes

 Description   

This is quite important when it comes to developing inbound endpoints and bind them to specific environments (with the use of registry key values paris). Also, at the same time we need to get this integrated to secure vault based parameters which are encrypted.

HTTP, File and JMS Inbound EPs.



 Comments   
Comment by gregory eve [ 01/Jul/16 ]

The practice since 4.9 is to use one registry resource for each parameter we want to be dynamic.
But if we want to have all the parameters of an in inboud endpoint in the registry how we do that? we need 10, 20 resources in the registry? it's not practical.

We need to have one registry resource to give all the parameter values needed to an endpoint.





[ESBJAVA-4714] Multiple security vulnerabilities Created: 29/Jun/16  Updated: 29/Jun/16  Resolved: 29/Jun/16

Status: Resolved
Project: WSO2 ESB
Component/s: None
Affects Version/s: 4.9.0
Fix Version/s: None

Type: Bug Priority: Normal
Reporter: Marcin Suchocki Assignee: Chanaka Fernando
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Severity: Major
Estimated Complexity: Moderate
Test cases added: Yes

 Description   

I have discovered multiple security vulnerabilities in WSO2 ESB. Is there any specific way to disclose them? I'd like to avoid posting them to public bugtrac before they will be addressed.



 Comments   
Comment by Prabath Siriwardena [ 29/Jun/16 ]

Hi Marcin,

Please report the issue to security@wso2.com. The process of reporting security vulnerability are defined here: http://wso2.com/security.

Also - all the security patches issued so far are available at http://wso2.com/security-patch-releases.

Thanks & regards,
-Prabath





[ESBJAVA-4713] JMSSender does not close the session and underlying connection on transport level exception Created: 29/Jun/16  Updated: 29/Jun/16

Status: Open
Project: WSO2 ESB
Component/s: Transport
Affects Version/s: 4.8.1
Fix Version/s: None

Type: Bug Priority: Normal
Reporter: Ruwan Abeykoon Assignee: Chanaka Fernando
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Severity: Major
Estimated Complexity: Advanced
Test cases added: Yes

 Description   

JMS sender does not close underlying session upon exception. This causes the TCP level connections to be stale for some time until the OS reclaims.
In turn this yield too may open connections in the kernel towards JVM when a burst of errors happen compromizing the stability of ESB.

org.apache.axis2.transport.jms.JMSSender

This may cause for any reasons,
1. Queue name is not valid
2. Message is rejected by MQ due to format, or size error,
3. Unexpected connectivity error

Please see an exception trace generated when there is active MQ, when the queue name is invalid.

[xxxxxx] ERROR - Axis2Sender Unexpected error during sending message out
org.apache.axis2.transport.jms.AxisJMSException: Couldn't locate the JMS destination XXXX of type generic extracted from the URL jms:/XXXX?transport.jms.ConnectionFactory=sendXXXMQ
at org.apache.axis2.transport.jms.JMSOutTransportInfo.handleException(JMSOutTransportInfo.java:245)
at org.apache.axis2.transport.jms.JMSOutTransportInfo.getDestination(JMSOutTransportInfo.java:181)
at org.apache.axis2.transport.jms.JMSOutTransportInfo.loadConnectionFactoryFromProperties(JMSOutTransportInfo.java:127)
at org.apache.axis2.transport.jms.JMSOutTransportInfo.createJMSSender(JMSOutTransportInfo.java:325)
at org.apache.axis2.transport.jms.JMSSender.sendMessage(JMSSender.java:127)
at org.apache.axis2.transport.base.AbstractTransportSender.invoke(AbstractTransportSender.java:112)
at org.apache.axis2.engine.AxisEngine.send(AxisEngine.java:442)
at org.apache.axis2.description.OutOnlyAxisOperationClient.executeImpl(OutOnlyAxisOperation.java:297)
at org.apache.axis2.client.OperationClient.execute(OperationClient.java:149)
at org.apache.synapse.core.axis2.Axis2FlexibleMEPClient.send(Axis2FlexibleM






[ESBJAVA-4712] Setting message retained flag false by default in MQTT transport sender Created: 29/Jun/16  Updated: 29/Jun/16  Resolved: 29/Jun/16

Status: Resolved
Project: WSO2 ESB
Component/s: None
Affects Version/s: None
Fix Version/s: 5.0.0

Type: Bug Priority: Normal
Reporter: Eranda Rajapakshe Assignee: Eranda Rajapakshe
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Severity: Major
Estimated Complexity: Moderate
Test cases added: Yes

 Comments   
Comment by Eranda Rajapakshe [ 29/Jun/16 ]

This issue was fixed in this PR [1]

[1]. https://github.com/wso2/wso2-axis2-transports/pull/93/





[ESBJAVA-4711] While deploying a proxy configuration change in tenant in the cluster, one of the workers throws IllegalStateException. Created: 28/Jun/16  Updated: 28/Jun/16

Status: Open
Project: WSO2 ESB
Component/s: None
Affects Version/s: 4.9.0
Fix Version/s: None

Type: Bug Priority: Normal
Reporter: Lasantha Samarakoon Assignee: Chanaka Fernando
Resolution: Unresolved Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Severity: Major
Estimated Complexity: Moderate
Test cases added: Yes




[ESBJAVA-4710] XML to JSON conversion related parameter names are not consistent and not included in the documentation Created: 28/Jun/16  Updated: 01/Jul/16  Resolved: 01/Jul/16

Status: Resolved
Project: WSO2 ESB
Component/s: None
Affects Version/s: 5.0.0-Beta
Fix Version/s: 5.0.0

Type: Bug Priority: High
Reporter: Chanaka Fernando Assignee: Chanaka Fernando
Resolution: Fixed Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Severity: Major
Estimated Complexity: Moderate
Attachment License: I agree to grant a license to WSO2 for this work for inclusion in WSO2 works as per the WSO2 Contributor License Agreement and the Apache License 2.0
Test cases added: Yes

 Description   

In the source code of JsonUtil class, we can find the following code segment in which these parameters are defined. The names are not consistent since some parameters have "json.json" as part of the name which is not required.

JsonUtil


    Properties properties = MiscellaneousUtil.loadProperties("synapse.properties");
        if (properties == null) {
            preserverNamespacesForJson = processNCNames = jsonOutEnableNsDeclarations = false;
            jsonOutAutoPrimitive = true;
            jsonOutNamespaceSepChar = '_';
            jsonoutcustomRegex=null;
        } else {
            // Preserve the namespace declarations() in the JSON output in the XML -> JSON transformation.
            String process = properties.getProperty("synapse.commons.json.preserve.namespace", "false").trim();
            preserverNamespacesForJson = Boolean.parseBoolean(process.toLowerCase());
            // Build valid XML NCNames when building XML element names in the JSON -> XML transformation.
            process = properties.getProperty("synapse.commons.json.buildValidNCNames", "false").trim();
            processNCNames = Boolean.parseBoolean(process.toLowerCase());
            // Enable primitive types in json out put in the XML -> JSON transformation.
            process = properties.getProperty("synapse.commons.json.json.output.autoPrimitive", "true").trim();
            jsonOutAutoPrimitive = Boolean.parseBoolean(process.toLowerCase());
            // The namespace prefix separate character in the JSON output of the XML -> JSON transformation
            process = properties.getProperty("synapse.commons.json.json.output.namespaceSepChar", "_").trim();
            jsonOutNamespaceSepChar = process.charAt(0);
            // Add XML namespace declarations in the JSON output in the XML -> JSON transformation.
            process = properties.getProperty("synapse.commons.json.json.output.enableNSDeclarations", "false").trim();
            jsonOutEnableNsDeclarations = Boolean.parseBoolean(process.toLowerCase());

            jsonoutcustomRegex = properties.getProperty("synapse.commons.json.json.output.disableAutoPrimitive.regex", null);

            process = properties.getProperty("synapse.commons.json.json.output.emptyXmlElemToEmptyStr", "true").trim();


 Comments   
Comment by Chanaka Fernando [ 01/Jul/16 ]

This is fixed with following PR[1]

[1] https://github.com/wso2/wso2-synapse/pull/591

Comment by Chanaka Fernando [ 01/Jul/16 ]

Merged the PR

https://github.com/wso2/wso2-synapse/commit/5fab2c4476351122dce1f6c2ed94980ff3aab4f4





Generated at Sat Jul 02 09:13:01 IST 2016 using JIRA 6.0.1#6096-sha1:e4a48bd73c6b8a4d99c824976ce5808b4c85857d.