[ https://issues.apache.org/jira/browse/ODE-549?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12680690#action_12680690 ]
Alexis Midon commented on ODE-549: ---------------------------------- For the first exception, I think I nailed down the issue: for the first invocation, thread A has detected that the options need to be initialized and has started to do it. A second invocation happens in thread B which reads the reference but the reference is still null because thread A is not done initializing it. A (read/write) lock on the options ref should fix this issue. > Exceptions in SoapExternalService under heavy load > -------------------------------------------------- > > Key: ODE-549 > URL: https://issues.apache.org/jira/browse/ODE-549 > Project: ODE > Issue Type: Bug > Components: Axis2 Integration > Reporter: Alexis Midon > Assignee: Alexis Midon > Fix For: 1.3 > > Attachments: ode.log > > > Doing some quick benchmarking with in-memory processes (so when we start > having a lot of invocations happening in parrallel), I get quite of few NPEs > and AxisFault in SoapExternalService.applySecuritySettings(). I've pasted the > stacks below and attached the logs for more. > 19:00:40,930 ERROR [org.apache.ode.jacob.vpu.JacobVPU] [ODEServer-3] Method > "run" in class "org.apache.ode.bpel.runtime.INVOKE" threw an unexpected > exception. > java.lang.NullPointerException > at > org.apache.ode.axis2.SoapExternalService.applySecuritySettings(SoapExternalService.java:246) > at > org.apache.ode.axis2.SoapExternalService.getServiceClient(SoapExternalService.java:240) > at > org.apache.ode.axis2.SoapExternalService.invoke(SoapExternalService.java:130) > at > org.apache.ode.axis2.MessageExchangeContextImpl.invokePartner(MessageExchangeContextImpl.java:52) > at > org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeContextImpl.java:769) > at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:100) > at sun.reflect.GeneratedMethodAccessor64.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451) > at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139) > at > org.apache.ode.bpel.engine.BpelRuntimeContextImpl.execute(BpelRuntimeContextImpl.java:858) > at > org.apache.ode.bpel.engine.PartnerLinkMyRoleImpl.invokeNewInstance(PartnerLinkMyRoleImpl.java:206) > at org.apache.ode.bpel.engine.BpelProcess.invokeProcess(BpelProcess.java:220) > at > org.apache.ode.bpel.engine.BpelProcess.handleWorkEvent(BpelProcess.java:392) > at > org.apache.ode.bpel.engine.BpelEngineImpl.onScheduledJob(BpelEngineImpl.java:396) > at > org.apache.ode.bpel.engine.BpelServerImpl.onScheduledJob(BpelServerImpl.java:387) > at > org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:390) > at > org.apache.ode.scheduler.simple.SimpleScheduler$4$1.call(SimpleScheduler.java:384) > at > org.apache.ode.scheduler.simple.SimpleScheduler.execTransaction(SimpleScheduler.java:208) > at > org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:383) > at > org.apache.ode.scheduler.simple.SimpleScheduler$4.call(SimpleScheduler.java:380) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303) > at java.util.concurrent.FutureTask.run(FutureTask.java:138) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) > at java.lang.Thread.run(Thread.java:619) > 19:01:09,945 ERROR [org.apache.ode.axis2.SoapExternalService] [ODEServer-42] > Error sending message to Axis2 for ODE mex > {PartnerRoleMex#4611686018427392460 [PID > {http://example.com/SyncProcess/SyncProcess}SyncProcess-4] calling > null.scheduleWorkOrder(...)} > org.apache.axis2.AxisFault: The > anonymous_service_99d2dffa-127f-4109-8b6e-d472e120899e-7 service, which is > not valid, does not belong to the > anonymous_service_99d2dffa-127f-4109-8b6e-d472e120899e-7 service group. > at > org.apache.axis2.context.ServiceGroupContext.getServiceContext(ServiceGroupContext.java:138) > at > org.apache.axis2.client.ServiceClient.setAxisService(ServiceClient.java:829) > at > org.apache.ode.axis2.SoapExternalService.getServiceClient(SoapExternalService.java:237) > at > org.apache.ode.axis2.SoapExternalService.invoke(SoapExternalService.java:130) > at > org.apache.ode.axis2.MessageExchangeContextImpl.invokePartner(MessageExchangeContextImpl.java:52) > at > org.apache.ode.bpel.engine.BpelRuntimeContextImpl.invoke(BpelRuntimeContextImpl.java:769) > at org.apache.ode.bpel.runtime.INVOKE.run(INVOKE.java:100) > at sun.reflect.GeneratedMethodAccessor64.invoke(Unknown Source) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) > at java.lang.reflect.Method.invoke(Method.java:597) > at > org.apache.ode.jacob.vpu.JacobVPU$JacobThreadImpl.run(JacobVPU.java:451) > at org.apache.ode.jacob.vpu.JacobVPU.execute(JacobVPU.java:139) -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.