[jboss-user] [JBoss Messaging] - NullPointerException in org.jboss.remoting.Lease.notifyClien
rtm333
do-not-reply at jboss.com
Tue Nov 14 11:13:34 EST 2006
We are using Messaging 1.0.1.GA with JBoss 4.0.5.GA. We are experiencing a serious problem that prevents further client connections to JMS. It can be reproduced by the following steps:
1. Start JBoss (standard messaging configuration).
| 2. Start a JMS topic subscriber.
| 3. Shutdown JBoss (client ExceptionListener is triggered, no action, client remains running).
| 4. Restart JBoss.
| 5. Stop JMS topic subscriber.
| 6. After about a minute JBoss throws a NullPointerException.
| 7. No further JMS connections will be accepted by the server.
|
|
| This is the server side exception from step 6:
|
|
| | Exception in thread "Timer-1"
| | java.lang.NullPointerException
| | at org.jboss.remoting.Lease.notifyClientLost(Lease.java:211)
| | at org.jboss.remoting.Lease.access$300(Lease.java:39)
| | at org.jboss.remoting.Lease$LeaseTimerTask.run(Lease.java:242)
| | at java.util.TimerThread.mainLoop(Timer.java:512)
| | at java.util.TimerThread.run(Timer.java:462)
| |
|
| This is the exception that is thrown when a new JMS client tries to connect in step 7:
|
|
| | [java] java.lang.RuntimeException: Error setting up client lease upon performing connect.
| | [java] at org.jboss.remoting.Client.connect(Client.java:394)
| | [java] at org.jboss.remoting.Client.connect(Client.java:380)
| | [java] at org.jboss.jms.client.remoting.JMSRemotingConnection.start(JMSRemotingConnection.java:99)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.invoke(ClientConnectionFactoryDelegate.java:159)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.invokeNext(ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.java)
| | [java] at org.jboss.jms.client.container.StateCreationAspect.handleCreateConnectionDelegate(StateCreationAspect.java:81)
| | [java] at org.jboss.aop.advice.org.jboss.jms.client.container.StateCreationAspect0.invoke(StateCreationAspect0.java)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.invokeNext(ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.java)
| | [java] at org.jboss.jms.client.container.ExceptionInterceptor.invoke(ExceptionInterceptor.java:69)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.invokeNext(ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.java)
| | [java] at org.jboss.jms.client.container.ClientLogInterceptor.invoke(ClientLogInterceptor.java:107)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.invokeNext(ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.java)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.createConnectionDelegate(ClientConnectionFactoryDelegate.java)
| | [java] at org.jboss.jms.client.JBossConnectionFactory.createConnectionInternal(JBossConnectionFactory.java:202)
| | [java] at org.jboss.jms.client.JBossConnectionFactory.createTopicConnection(JBossConnectionFactory.java:120)
| | [java] at org.jboss.jms.client.JBossConnectionFactory.createTopicConnection(JBossConnectionFactory.java:115)
| | [java] at testjms.JmsTestDriver.<init>(JmsTestDriver.java:31)
| | [java] at testjms.TestTopicSubscriber.<init>(TestTopicSubscriber.java:5)
| | [java] at testjms.TestTopicSubscriber.main(TestTopicSubscriber.java:35)
| | [java] Caused by: java.lang.Exception: Error setting up client lease.
| | [java] at org.jboss.remoting.MicroRemoteClientInvoker.establishLease(MicroRemoteClientInvoker.java:393)
| | [java] at org.jboss.remoting.Client.setupClientLease(Client.java:481)
| | [java] at org.jboss.remoting.Client.connect(Client.java:390)
| | [java] ... 18 more
| | [java] Caused by: java.lang.IllegalStateException: Timer already cancelled.
| | [java] at java.util.Timer.sched(Timer.java:354)
| | [java] at java.util.Timer.schedule(Timer.java:222)
| | [java] at org.jboss.remoting.util.TimerUtil.schedule(TimerUtil.java:27)
| | [java] at org.jboss.remoting.Lease.startLease(Lease.java:80)
| | [java] at org.jboss.remoting.ServerInvoker.updateClientLease(ServerInvoker.java:1086)
| | [java] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:946)
| | [java] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:857)
| | [java] at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:454)
| | [java] at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:541)
| | [java] at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:261)
| | [java] at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:172)
| | [java] at org.jboss.remoting.MicroRemoteClientInvoker.establishLease(MicroRemoteClientInvoker.java:362)
| | [java] ... 20 more
| | [java] 16:17:41,952 ERROR [ExceptionInterceptor] Cause of exception:
| | [java] java.lang.Exception: Error setting up client lease.
| | [java] at org.jboss.remoting.MicroRemoteClientInvoker.establishLease(MicroRemoteClientInvoker.java:393)
| | [java] at org.jboss.remoting.Client.setupClientLease(Client.java:481)
| | [java] at org.jboss.remoting.Client.connect(Client.java:390)
| | [java] at org.jboss.remoting.Client.connect(Client.java:380)
| | [java] at org.jboss.jms.client.remoting.JMSRemotingConnection.start(JMSRemotingConnection.java:99)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.invoke(ClientConnectionFactoryDelegate.java:159)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.invokeNext(ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.java)
| | [java] at org.jboss.jms.client.container.StateCreationAspect.handleCreateConnectionDelegate(StateCreationAspect.java:81)
| | [java] at org.jboss.aop.advice.org.jboss.jms.client.container.StateCreationAspect0.invoke(StateCreationAspect0.java)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.invokeNext(ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.java)
| | [java] at org.jboss.jms.client.container.ExceptionInterceptor.invoke(ExceptionInterceptor.java:69)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.invokeNext(ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.java)
| | [java] at org.jboss.jms.client.container.ClientLogInterceptor.invoke(ClientLogInterceptor.java:107)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.invokeNext(ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.java)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.createConnectionDelegate(ClientConnectionFactoryDelegate.java)
| | [java] at org.jboss.jms.client.JBossConnectionFactory.createConnectionInternal(JBossConnectionFactory.java:202)
| | [java] at org.jboss.jms.client.JBossConnectionFactory.createTopicConnection(JBossConnectionFactory.java:120)
| | [java] at org.jboss.jms.client.JBossConnectionFactory.createTopicConnection(JBossConnectionFactory.java:115)
| | [java] at testjms.JmsTestDriver.<init>(JmsTestDriver.java:31)
| | [java] at testjms.TestTopicSubscriber.<init>(TestTopicSubscriber.java:5)
| | [java] at testjms.TestTopicSubscriber.main(TestTopicSubscriber.java:35)
| | [java] Caused by: java.lang.IllegalStateException: Timer already cancelled.
| | [java] at java.util.Timer.sched(Timer.java:354)
| | [java] at java.util.Timer.schedule(Timer.java:222)
| | [java] at org.jboss.remoting.util.TimerUtil.schedule(TimerUtil.java:27)
| | [java] at org.jboss.remoting.Lease.startLease(Lease.java:80)
| | [java] at org.jboss.remoting.ServerInvoker.updateClientLease(ServerInvoker.java:1086)
| | [java] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:946)
| | [java] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:857)
| | [java] at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:454)
| | [java] at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:541)
| | [java] at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:261)
| | [java] at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:172)
| | [java] at org.jboss.remoting.MicroRemoteClientInvoker.establishLease(MicroRemoteClientInvoker.java:362)
| | [java] javax.jms.IllegalStateException: Error setting up client lease upon performing connect.
| | [java] at org.jboss.jms.client.container.ExceptionInterceptor.invoke(ExceptionInterceptor.java:91)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.invokeNext(ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.java)
| | [java] ... 20 more
| | [java] 16:17:42,718 ERROR [ExceptionInterceptor] Cause of exception:
| | [java] java.lang.IllegalStateException: Timer already cancelled.
| | [java] at java.util.Timer.sched(Timer.java:354)
| | [java] at java.util.Timer.schedule(Timer.java:222)
| | [java] at org.jboss.remoting.util.TimerUtil.schedule(TimerUtil.java:27)
| | [java] at org.jboss.remoting.Lease.startLease(Lease.java:80)
| | [java] at org.jboss.remoting.ServerInvoker.updateClientLease(ServerInvoker.java:1086)
| | [java] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:946)
| | [java] at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:857)
| | [java] at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:454)
| | [java] at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:541)
| | [java] at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:261)
| | [java] at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:172)
| | [java] at org.jboss.remoting.MicroRemoteClientInvoker.establishLease(MicroRemoteClientInvoker.java:362)
| | [java] at org.jboss.remoting.Client.setupClientLease(Client.java:481)
| | [java] at org.jboss.remoting.Client.connect(Client.java:390)
| | [java] at org.jboss.remoting.Client.connect(Client.java:380)
| | [java] at org.jboss.jms.client.remoting.JMSRemotingConnection.start(JMSRemotingConnection.java:99)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.invoke(ClientConnectionFactoryDelegate.java:159)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.invokeNext(ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.java)
| | [java] at org.jboss.jms.client.container.StateCreationAspect.handleCreateConnectionDelegate(StateCreationAspect.java:81)
| | [java] at org.jboss.aop.advice.org.jboss.jms.client.container.StateCreationAspect0.invoke(StateCreationAspect0.java)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.invokeNext(ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.java)
| | [java] at org.jboss.jms.client.container.ExceptionInterceptor.invoke(ExceptionInterceptor.java:69)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.invokeNext(ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.java)
| | [java] at org.jboss.jms.client.container.ClientLogInterceptor.invoke(ClientLogInterceptor.java:107)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.invokeNext(ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.java)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.createConnectionDelegate(ClientConnectionFactoryDelegate.java)
| | [java] at org.jboss.jms.client.JBossConnectionFactory.createConnectionInternal(JBossConnectionFactory.java:202)
| | [java] at org.jboss.jms.client.JBossConnectionFactory.createTopicConnection(JBossConnectionFactory.java:120)
| | [java] at org.jboss.jms.client.JBossConnectionFactory.createTopicConnection(JBossConnectionFactory.java:115)
| | [java] at testjms.JmsTestDriver.<init>(JmsTestDriver.java:31)
| | [java] at testjms.TestTopicSubscriber.<init>(TestTopicSubscriber.java:5)
| | [java] at testjms.TestTopicSubscriber.main(TestTopicSubscriber.java:35)
| | [java] at org.jboss.jms.client.container.ClientLogInterceptor.invoke(ClientLogInterceptor.java:107)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.invokeNext(ClientConnectionFactoryDelegate$createConnectionDelegate_N6840474864420126404.java)
| | [java] at org.jboss.jms.client.delegate.ClientConnectionFactoryDelegate.createConnectionDelegate(ClientConnectionFactoryDelegate.java)
| | [java] at org.jboss.jms.client.JBossConnectionFactory.createConnectionInternal(JBossConnectionFactory.java:202)
| | [java] at org.jboss.jms.client.JBossConnectionFactory.createTopicConnection(JBossConnectionFactory.java:120)
| | [java] at org.jboss.jms.client.JBossConnectionFactory.createTopicConnection(JBossConnectionFactory.java:115)
| | [java] at testjms.JmsTestDriver.<init>(JmsTestDriver.java:31)
| | [java] at testjms.TestTopicSubscriber.<init>(TestTopicSubscriber.java:5)
| | [java] at testjms.TestTopicSubscriber.main(TestTopicSubscriber.java:35)
| |
|
| TRACE output for remoting on the server indicates that the previous client lease is re-established early during step 4. I suppose the server's lease registration gets disturbed when the client is finally terminated in step 5.
|
| This is a major show stopper for us, as any client kept running during a server restart and terminated subsequently will render the JMS server unusable.
|
| Any suggestions appreciated.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3985830#3985830
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3985830
More information about the jboss-user
mailing list