[esb-issues] [JBoss JIRA] Closed: (JBESB-1484) context.lookup() can return null
Kevin Conner (JIRA)
jira-events at lists.jboss.org
Thu Jan 17 05:58:19 EST 2008
[ http://jira.jboss.com/jira/browse/JBESB-1484?page=all ]
Kevin Conner closed JBESB-1484.
-------------------------------
Resolution: Done
The naming contexts are now pooled as a lifecycle resource.
CP fix is in revision 17914.
trunk fix is in revision 17917.
> context.lookup() can return null
> --------------------------------
>
> Key: JBESB-1484
> URL: http://jira.jboss.com/jira/browse/JBESB-1484
> Project: JBoss ESB
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Components: Rosetta
> Affects Versions: 4.2.1
> Environment: SOA-P 4.2.0.beta1, Oracle DB
> Reporter: Martin Vecera
> Assigned To: Kevin Conner
> Priority: Critical
> Fix For: 4.2.1 CP1
>
>
> I get the following bug in NotifyQueues:
> 2008-01-15 15:57:44,285 ERROR [STDERR] java.lang.reflect.InvocationTargetException
> 2008-01-15 15:57:44,286 ERROR [STDERR] at sun.reflect.GeneratedConstructorAccessor164.newInstance(Unknown Source)
> 2008-01-15 15:57:44,286 ERROR [STDERR] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
> 2008-01-15 15:57:44,286 ERROR [STDERR] at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
> 2008-01-15 15:57:44,286 ERROR [STDERR] at org.jboss.soa.esb.notification.NotificationTarget.fromParams(NotificationTarget.java:144)
> 2008-01-15 15:57:44,286 ERROR [STDERR] at org.jboss.soa.esb.notification.NotificationList.notifyAll(NotificationList.java:162)
> 2008-01-15 15:57:44,286 ERROR [STDERR] at org.jboss.soa.esb.actions.Notifier.notifyOK(Notifier.java:93)
> 2008-01-15 15:57:44,287 ERROR [STDERR] at sun.reflect.GeneratedMethodAccessor180.invoke(Unknown Source)
> 2008-01-15 15:57:44,287 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 2008-01-15 15:57:44,287 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:585)
> 2008-01-15 15:57:44,287 ERROR [STDERR] at org.jboss.soa.esb.listeners.message.ActionProcessorMethodInfo.processSuccess(ActionProcessorMethodInfo.java:165)
> 2008-01-15 15:57:44,287 ERROR [STDERR] at org.jboss.soa.esb.listeners.message.OverriddenActionLifecycleProcessor.processSuccess(OverriddenActionLifecycleProcessor.java:108)
> 2008-01-15 15:57:44,287 ERROR [STDERR] at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.notifySuccess(ActionProcessingPipeline.java:610)
> 2008-01-15 15:57:44,287 ERROR [STDERR] at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:384)
> 2008-01-15 15:57:44,287 ERROR [STDERR] at org.jboss.soa.esb.listeners.jca.JcaMessageAwareListener.process(JcaMessageAwareListener.java:156)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at org.jboss.soa.esb.listeners.jca.JcaJMSInflowMessageProcessorAdapter.onMessage(JcaJMSInflowMessageProcessorAdapter.java:44)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at java.lang.reflect.Method.invoke(Method.java:585)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at org.jboss.soa.esb.listeners.jca.BaseJcaInflow$1.invoke(BaseJcaInflow.java:205)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at org.jboss.soa.esb.listeners.jca.EndpointProxy.delivery(EndpointProxy.java:242)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at org.jboss.soa.esb.listeners.jca.EndpointProxy.invoke(EndpointProxy.java:145)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at $Proxy78.onMessage(Unknown Source)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at org.jboss.resource.adapter.jms.inflow.JmsServerSession.onMessage(JmsServerSession.java:178)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at org.jboss.jms.client.container.ClientConsumer.callOnMessage(ClientConsumer.java:159)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at org.jboss.jms.client.container.SessionAspect.handleRun(SessionAspect.java:802)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect14.invoke(SessionAspect14.java)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at org.jboss.jms.client.delegate.ClientSessionDelegate$run_N8003352271541955702.invokeNext(ClientSessionDelegate$run_N8003352271541955702.java)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at org.jboss.jms.client.delegate.ClientSessionDelegate$run_N8003352271541955702.invokeNext(ClientSessionDelegate$run_N8003352271541955702.java)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at org.jboss.jms.client.delegate.ClientSessionDelegate.run(ClientSessionDelegate.java)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at org.jboss.jms.client.JBossSession.run(JBossSession.java:199)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at org.jboss.resource.adapter.jms.inflow.JmsServerSession.run(JmsServerSession.java:237)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:204)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:275)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748)
> 2008-01-15 15:57:44,288 ERROR [STDERR] at java.lang.Thread.run(Thread.java:595)
> 2008-01-15 15:57:44,289 ERROR [STDERR] Caused by: java.lang.NullPointerException
> 2008-01-15 15:57:44,289 ERROR [STDERR] at org.jboss.soa.esb.notification.NotifyQueues.createProducer(NotifyQueues.java:112)
> 2008-01-15 15:57:44,289 ERROR [STDERR] at org.jboss.soa.esb.notification.NotifyJMS.setUpProducers(NotifyJMS.java:407)
> 2008-01-15 15:57:44,289 ERROR [STDERR] at org.jboss.soa.esb.notification.NotifyQueues.setQueues(NotifyQueues.java:79)
> 2008-01-15 15:57:44,289 ERROR [STDERR] at org.jboss.soa.esb.notification.NotifyQueues.<init>(NotifyQueues.java:74)
> 2008-01-15 15:57:44,289 ERROR [STDERR] ... 37 more
> 2008-01-15 15:57:44,291 ERROR [org.jboss.soa.esb.notification.NotificationList] Can't instantiate target <target class="NotifyQueues">
> <queue jndiName="queue/A"/>
> </target>
> org.jboss.soa.esb.ConfigurationException: NotifyQueues does not extend NotificationTarget
> at org.jboss.soa.esb.notification.NotificationTarget.fromParams(NotificationTarget.java:151)
> at org.jboss.soa.esb.notification.NotificationList.notifyAll(NotificationList.java:162)
> at org.jboss.soa.esb.actions.Notifier.notifyOK(Notifier.java:93)
> at sun.reflect.GeneratedMethodAccessor180.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.jboss.soa.esb.listeners.message.ActionProcessorMethodInfo.processSuccess(ActionProcessorMethodInfo.java:165)
> at org.jboss.soa.esb.listeners.message.OverriddenActionLifecycleProcessor.processSuccess(OverriddenActionLifecycleProcessor.java:108)
> at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.notifySuccess(ActionProcessingPipeline.java:610)
> at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.process(ActionProcessingPipeline.java:384)
> at org.jboss.soa.esb.listeners.jca.JcaMessageAwareListener.process(JcaMessageAwareListener.java:156)
> at org.jboss.soa.esb.listeners.jca.JcaJMSInflowMessageProcessorAdapter.onMessage(JcaJMSInflowMessageProcessorAdapter.java:44)
> at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:585)
> at org.jboss.soa.esb.listeners.jca.BaseJcaInflow$1.invoke(BaseJcaInflow.java:205)
> at org.jboss.soa.esb.listeners.jca.EndpointProxy.delivery(EndpointProxy.java:242)
> at org.jboss.soa.esb.listeners.jca.EndpointProxy.invoke(EndpointProxy.java:145)
> at $Proxy78.onMessage(Unknown Source)
> at org.jboss.resource.adapter.jms.inflow.JmsServerSession.onMessage(JmsServerSession.java:178)
> at org.jboss.jms.client.container.ClientConsumer.callOnMessage(ClientConsumer.java:159)
> at org.jboss.jms.client.container.SessionAspect.handleRun(SessionAspect.java:802)
> at org.jboss.aop.advice.org.jboss.jms.client.container.SessionAspect14.invoke(SessionAspect14.java)
> at org.jboss.jms.client.delegate.ClientSessionDelegate$run_N8003352271541955702.invokeNext(ClientSessionDelegate$run_N8003352271541955702.java)
> at org.jboss.jms.client.container.ClosedInterceptor.invoke(ClosedInterceptor.java:170)
> at org.jboss.aop.advice.PerInstanceInterceptor.invoke(PerInstanceInterceptor.java:105)
> at org.jboss.jms.client.delegate.ClientSessionDelegate$run_N8003352271541955702.invokeNext(ClientSessionDelegate$run_N8003352271541955702.java)
> at org.jboss.jms.client.delegate.ClientSessionDelegate.run(ClientSessionDelegate.java)
> at org.jboss.jms.client.JBossSession.run(JBossSession.java:199)
> at org.jboss.resource.adapter.jms.inflow.JmsServerSession.run(JmsServerSession.java:237)
> at org.jboss.resource.work.WorkWrapper.execute(WorkWrapper.java:204)
> at org.jboss.util.threadpool.BasicTaskWrapper.run(BasicTaskWrapper.java:275)
> at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:748)
> at java.lang.Thread.run(Thread.java:595)
> This happened ~20 times of 10,000 messages processed. As a result, the message has been lost.
> The offending code in NotifyQueues.java (marked with >>> <<<):
> Context context = NamingContext.getServerContext(environment);
> Queue queue=null;
> try
> {
> >>> queue = (Queue) context.lookup(destinationName); <<<
> }
> This context.lookup() returns null sometimes.
> I was able to reproduce it only when the ESB listener's queue is served with >1 thread and the service was deployed on two nodes in the cluster (clustered JMS, ServiceInvoker used RoundRobin policy).
> BEWARE! The context.lookup() is used on many different places without checking the return value != null.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
More information about the esb-issues
mailing list