[jboss-user] [JBoss Messaging] - NullPointerException in org.jboss.jms.server.endpoint.Server

bob_walker99 do-not-reply at jboss.com
Thu Nov 6 05:32:49 EST 2008


I'm using JBoss AS 4.2.2/JBM 1.4.0 on Linux SLES 9 x86_64 with Java 1.6.0_06. I have a single queue that a remote command line client pumps messages at, and a Jetty instance that has a Thread that implements MessageListener.

I'm seeing this in my server log, which coincides with the last point my MessageListener has onMessage called for the last time. My ExceptionListener never gets called, and my consumer is removed from the Queue.


  | 2008-11-05 20:12:16,381 ERROR [org.jboss.messaging.util.ExceptionUtil] ConnectionEndpoint[wcy1-jk2s66nf-1-18ofs1nf-rplxnw-f20a] close [9r12-1f2pe6nf-1-18ofs1nf-rplxnw-f20a]
  |   java.lang.NullPointerException
  |       at org.jboss.jms.server.endpoint.ServerSessionEndpoint.localClose(ServerSessionEndpoint.java:1192)
  |       at org.jboss.jms.server.endpoint.ServerConnectionEndpoint.close(ServerConnectionEndpoint.java:385)
  |       at org.jboss.jms.server.connectionmanager.SimpleConnectionManager.closeConsumersForClientVMID(SimpleConnectionManager.java:377)
  |       at org.jboss.jms.server.connectionmanager.SimpleConnectionManager.handleClientFailure(SimpleConnectionManager.java:173)
  |       at org.jboss.jms.server.connectionmanager.SimpleConnectionManager.handleConnectionException(SimpleConnectionManager.java:200)
  |       at org.jboss.remoting.ConnectionNotifier.connectionLost(ConnectionNotifier.java:50)
  |       at org.jboss.remoting.Lease.notifyClientLost(Lease.java:211)
  |       at org.jboss.remoting.Lease.access$500(Lease.java:39)
  |       at org.jboss.remoting.Lease$LeaseTimerTask.run(Lease.java:249)
  |       at java.util.TimerThread.mainLoop(Timer.java:512)
  |       at java.util.TimerThread.run(Timer.java:462)
  |   2008-11-05 20:12:16,491 ERROR [org.jboss.jms.server.connectionmanager.SimpleConnectionManager] Failed to close connection
  |   org.jboss.jms.exception.MessagingJMSException: A failure has occurred during processing of the request. Please consult the server logs for more details. ConnectionEndpoint[wcy1-jk2s66nf-1-18ofs1nf-rplxnw-f20a] close [9r12-1f2pe6nf-1-18ofs1nf-rplxnw-f20a]
  |       at org.jboss.messaging.util.ExceptionUtil.handleJMSInvocation(ExceptionUtil.java:72)
  |       at org.jboss.jms.server.endpoint.ServerConnectionEndpoint.close(ServerConnectionEndpoint.java:432)
  |       at org.jboss.jms.server.connectionmanager.SimpleConnectionManager.closeConsumersForClientVMID(SimpleConnectionManager.java:377)
  |       at org.jboss.jms.server.connectionmanager.SimpleConnectionManager.handleClientFailure(SimpleConnectionManager.java:173)
  |       at org.jboss.jms.server.connectionmanager.SimpleConnectionManager.handleConnectionException(SimpleConnectionManager.java:200)
  |       at org.jboss.remoting.ConnectionNotifier.connectionLost(ConnectionNotifier.java:50)
  |       at org.jboss.remoting.Lease.notifyClientLost(Lease.java:211)
  |       at org.jboss.remoting.Lease.access$500(Lease.java:39)
  |       at org.jboss.remoting.Lease$LeaseTimerTask.run(Lease.java:249)
  |       at java.util.TimerThread.mainLoop(Timer.java:512)
  |       at java.util.TimerThread.run(Timer.java:462)
  | 

I'm also seeing this a lot:


  | A problem has been detected with the connection to remote client a0ac-y95htn-fn6xm53g-1-fn6xm6n0-4, jmsClientID=null. It is possible the client has exited without closing its connection(s) or the network has failed. All connection resources corresponding to that client process will now be removed.
  | 

I'm tracing all my connection  and session creation and disposal , and for the life of me I can't find anywhere where I'm not cleaning up my connections when I should be.  The sending client is over a remote VPN, so it's possible that is the cause of a network failure, but I'm led to believe this is a reliable link that other traffic uses without issue. 

I guess I have 2 questions: 
1) what is the cause of the NPE, and can I do anything to resolve it?
and 
2) Is there a way to pass a meaningful string to JBM to identify my clients more usefully so that I can track down where the connection was made from and what I might be doing wrongly? I tried calling setClientID on the connection when I create it, but I never see the value I set in the JBM logs.

Alternatively is there a function of the AS MBean interface that will allow me to see current connections / client resources in use?

Many thanks, 

Bob

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4187270#4187270

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4187270



More information about the jboss-user mailing list