Details
-
Type:
Improvement
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: 1.4.1, 2.0.0-M1
-
Fix Version/s: Tech. Debt
-
Component/s: Core: Endpoints
-
Labels:None
-
User impact:Low
-
Effort points:2
-
Similar Issues:None
Description
While investigating the cause of MULE-2164 i looked carefully at these implementations, and found a number of issues:
- When MuleEndpointURI's are copied/reconstructed the value of schemaMetaInfo is lost and the value of address gets "mangled" (See MULE-2164)
- EndpointBuilder/AbstractEndpointBuilder should be called EndpointURIBuilder/AbstractEndpointURIBuilder
- AbstractEndpointBuilder has dynamic state and is therefore not thread-safe! (values are set to null manually ready for the next thread (but method is not synchronized
) ) - The MuleEndpoint(URI)Builder exists but does not build EnpointURI's, MuleEndpointURI's are created through a mix of constructors, initialize methods and the MuleEndpointBuilder.
- AbstractEndpointBuilder set's MuleEndpointURI attributes by creating a new MuleEnpointURI instance and then copying values onto existing instance.
- MuleEndpointURI.getSchemeMetaInfo() which is an explicit get for schemeMetaInfo returns a value is there is no schemeMetaInfo
There is also a need to verify the correct implementation (and usage throughout codebase) of getScheme()/getScehemeMetaInfo()/getFullScheme()/getAddress()/getUri()
Issue Links
- relates to
-
MULE-2164
Copied endpointURI's lose value of "schemeMetaInfo" and have incorrect "address"
-
-
MULE-1677
Problems with the endpoint address format when using Axis over JMS
-
-
MULE-1839
Axis transport fails to pass tests in 2.0
-
-
MULE-2495
Restrict visibility of UMOEndpointURI attributes once endpoints are created or use something else.
-
Activity
| Field | Original Value | New Value |
|---|---|---|
| Priority | To be reviewed [ 6 ] | Major [ 3 ] |
| Description |
While investigating the cause of MULE-2164 i looked carefully at these implementations, and found a number of issues: - When MuleEndpointURI's are copied/reconstructed the value of schemaMetaInfo is lost and the value of address gets "mangled" (See MULE-2164) - EndpointBuilder/AbstractEndpointBuilder should be called EndpointURIBuilder/AbstractEndpointURIBuilder - AbstractEndpointBuilder has dynamic state and is therefore not thread-safe! (values are set to null manually ready for the next thread (but method is not synchronized :-)) ) - The MuleEndpoint(URI)Builder exists but does not build EnpointURI's, MuleEndpointURI's are created through a mix of constructors, initialize methods and the MuleEndpointBuilder. - AbstractEndpointBuilder set's MuleEndpointURI attributes by creating a new MuleEnpointURI instance and then copying values onto existing instance. - MuleEndpointURI.getSchemeMetaInfo() which is an explicit get for schemeMetaInfo returns a value is there is no schemeMetaInfo There is also a need to verify the correct implementation (and usage throughout codebase) of getScheme()/getScehemeMetaInfo()/getFullScheme()/getScheme() |
While investigating the cause of MULE-2164 i looked carefully at these implementations, and found a number of issues: - When MuleEndpointURI's are copied/reconstructed the value of schemaMetaInfo is lost and the value of address gets "mangled" (See MULE-2164) - EndpointBuilder/AbstractEndpointBuilder should be called EndpointURIBuilder/AbstractEndpointURIBuilder - AbstractEndpointBuilder has dynamic state and is therefore not thread-safe! (values are set to null manually ready for the next thread (but method is not synchronized :-)) ) - The MuleEndpoint(URI)Builder exists but does not build EnpointURI's, MuleEndpointURI's are created through a mix of constructors, initialize methods and the MuleEndpointBuilder. - AbstractEndpointBuilder set's MuleEndpointURI attributes by creating a new MuleEnpointURI instance and then copying values onto existing instance. - MuleEndpointURI.getSchemeMetaInfo() which is an explicit get for schemeMetaInfo returns a value is there is no schemeMetaInfo There is also a need to verify the correct implementation (and usage throughout codebase) of getScheme()/getScehemeMetaInfo()/getFullScheme()/getAddress()/getUri() |
| Fix Version/s | 2.0-M2 [ 10291 ] |
| Fix Version/s | 2.0-M2 [ 10291 ] |
| Fix Version/s | 2.0-RC1 [ 10302 ] |
| Labels | ||
| Component/s | Core: (other) [ 10168 ] | |
| Component/s | Core: Endpoints [ 10400 ] |
| Fix Version/s | 2.0.x Backlog [ 10352 ] | |
| Fix Version/s | 2.0.0-RC1 [ 10302 ] |
| Fix Version/s | 2.0.x Backlog [ 10352 ] |
| Fix Version/s | 2.0.0-RC3 [ 10311 ] |
| Labels | ||
| Fix Version/s | 2.0.x Backlog [ 10352 ] | |
| Fix Version/s | 2.0.0-RC3 [ 10311 ] |
| Workflow | Copy of Main Mule Workflow [ 36531 ] | Fixed Main Mule Workflow (after JIRA upgrade) [ 61838 ] |
| Workflow | Fixed Main Mule Workflow (after JIRA upgrade) [ 61838 ] | Copy of Main Mule Workflow [ 65665 ] |
| Workflow | Copy of Main Mule Workflow [ 65665 ] | Fixed Main Mule Workflow (after JIRA upgrade) [ 69363 ] |
| Fix Version/s | 2.x Backlog [ 10440 ] | |
| Fix Version/s | 2.0.x Backlog [ 10352 ] |
| Fix Version/s | Tech. Debt [ 10572 ] | |
| Fix Version/s | 2.x Backlog [ 10440 ] |
| Labels | 22-techdebt-candidates |
| Effort points | 2 |
| Labels | 22-techdebt-candidates |