[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