[ 
https://issues.apache.org/jira/browse/SYNAPSE-577?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12751744#action_12751744
 ] 

Hiranya Jayathilaka commented on SYNAPSE-577:
---------------------------------------------

Hi George,

Thanks for the contribution. Your patch solves the problem for WSDL endpoints. 
But I believe the same issue occurs with some of the other types of endpoints 
such as load balance endpoints. So we need to fix this in a more general way so 
that the fix would cover all forms of endpoints. Also having a null check does 
not really solve the problem. It simply covers the problem up. We need a real 
fix which does not allow dynamic endpoints to be used without being initialized.

May be one possible solution is to initialize dynamic endpoints in the 
SynapseConfiguration class itself (Supun's patch took this approach). What 
Supun's solution lacked was probably that it did not check whether an endpoint 
is initialized or not before calling the init method on it.

So IMO we need a solution going along this path.

> WSDL Endpoints Stored in the Registry Cannot be Used
> ----------------------------------------------------
>
>                 Key: SYNAPSE-577
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-577
>             Project: Synapse
>          Issue Type: Bug
>          Components: Core, Endpoints
>    Affects Versions: NIGHTLY
>         Environment: Any
>            Reporter: Hiranya Jayathilaka
>            Assignee: Hiranya Jayathilaka
>             Fix For: 1.3, NIGHTLY
>
>         Attachments: WSDLEndpoint.patch
>
>
> 1. Define a valid registry provider in the Synapse configuration
> 2. Store a WSDL endpoint definition in the registry
> 3. Create a proxy service which refers to the WSDL endpoint in the registry
> 4. Start Synapse and send a message to the proxy service
> Message will be dispatched to the back end service, but Synapse will fail to 
> route the response back. The following NPE occurs.
> [2009-08-31 08:47:51,883] ERROR - NativeWorkerPool Uncaught exception
> java.lang.NullPointerException
>       at 
> org.apache.synapse.endpoints.WSDLEndpoint.onSuccess(WSDLEndpoint.java:59)
>       at 
> org.apache.synapse.core.axis2.SynapseCallbackReceiver.handleMessage(SynapseCallbackReceiver.java:208)
>       at 
> org.apache.synapse.core.axis2.SynapseCallbackReceiver.receive(SynapseCallbackReceiver.java:135)
>       at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:178)
>       at 
> org.apache.synapse.transport.nhttp.ClientWorker.run(ClientWorker.java:230)
>       at 
> org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:58)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676)
>       at java.lang.Thread.run(Thread.java:595)
> This is because the endpoint returned by the AbstractRegistry is not 
> initialized and hence does not have an associated EndpointContext.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to