[jboss-user] [JCA/JBoss] - JCA Problem: java.lang.IllegalStateException: Trying to retu

groovie do-not-reply at jboss.com
Wed Aug 5 08:31:10 EDT 2009


Dear Sirs,

i am developping my very first outbound connector and have 
still a litte problem on closing my connection handle.
Aquireing and use of connection from a pool does work
without any problem. Closing the connection from a
session acutally cause a problem.

I guess i have overseen something.

The runtime environment:
  Operating-System:	Fedora-11 Linux
  JAVA:			Java version: 1.6.0_0,Sun Microsystems Inc.
			Java VM: OpenJDK Server VM 14.0-b15,Sun Microsystems Inc.
			(shipped with this Linux-OS)
  Jboss: 		4.2.3.GA


Here is the stack-trace from the closing-thread:
------------------------------------------------

06:59:17,744 INFO  [NoTxConnectionManager] Throwable from unregisterConnection
java.lang.IllegalStateException: Trying to return an unknown connection2! null
	at org.jboss.resource.connectionmanager.CachedConnectionManager.unregisterConnection(CachedConnectionManager.java:342)
	at org.jboss.resource.connectionmanager.NoTxConnectionManager$NoTxConnectionEventListener.connectionClosed(NoTxConnectionManager.java:88)
	at de.dialog_leben.bfs.risikopruefung.connector.normrisk.resource.ManagedNrConnection.closeHandle(ManagedNrConnection.java:280)
	at de.dialog_leben.bfs.risikopruefung.connector.normrisk.resource.NormRiskConnectionImpl.close(NormRiskConnectionImpl.java:30)
	at de.dialog_leben.bfs.risikopruefung.business.test.normrisk.NRConnectorTest.testSimpleAccess(NRConnectorTest.java:89)
	at de.dialog_leben.bfs.risikopruefung.ejb.NormRiskTestAccessServiceBean.testSimpleAccess(NormRiskTestAccessServiceBean.java:42)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	(....)

Here is the stack-trace from the registering-thread:
----------------------------------------------------
07:08:14,445 INFO  [CachedConnectionManager] Closing a connection for you.  Please close them yourself: de.dialog_leben.bfs.risikopruefung.connector.normrisk.resource.NormRiskConnectionImpl at dce075
java.lang.Throwable: STACKTRACE
	at org.jboss.resource.connectionmanager.CachedConnectionManager.registerConnection(CachedConnectionManager.java:290)
	at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:423)
	at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:849)
	at de.dialog_leben.bfs.risikopruefung.connector.normrisk.driver.NormRiskConnectionFactoryImpl.getConnection(NormRiskConnectionFactoryImpl.java:87)
	at de.dialog_leben.bfs.risikopruefung.connector.normrisk.driver.NormRiskConnectionFactoryImpl.getConnection(NormRiskConnectionFactoryImpl.java:76)
	at de.dialog_leben.bfs.risikopruefung.business.test.normrisk.NRConnectorTest.testSimpleAccess(NRConnectorTest.java:82)
	at de.dialog_leben.bfs.risikopruefung.ejb.NormRiskTestAccessServiceBean.testSimpleAccess(NormRiskTestAccessServiceBean.java:42)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:616)
	at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:112)
	at org.jboss.ejb3.interceptor.InvocationContextImpl.proceed(InvocationContextImpl.java:166)
	at org.jboss.ejb3.interceptor.EJB3InterceptorsInterceptor.invoke(EJB3InterceptorsInterceptor.java:63)


In order to understand what's going wrong i downloaded JBoss-sourcecode
and followed the debugger. I located the problem in the nested class/method:
org.jboss.resource.connectionmanager.NoTxConnectionManager.NoTxConnectionManager/connectionClosed

      ce.getConnectionHandle());
         }

The ce.getConnectionHandle() expression returns null, that seems to cause the problem.
Therefore i think that i forgot to assign a connectionHandle in my ManagedConnection, cause
ce referes to

    ce = new ConnectionEvent(this, ConnectionEvent.CONNECTION_CLOSED) ;

where this referes to my managed connection and ce Event was created in the 
managedConnection method closeHandle.

Thank you for your help,
Groovy



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

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



More information about the jboss-user mailing list