Hi Bill
I got an exception when I ran this test (client-side) (this thread
is running ten times at the same time):
-------------------------------------------------------------------
class RegularTeller
implements Runnable
{
public void run() {
int k = 0;
Random lRandom = new Random();
Category lLog = Category.getInstance( getClass().getName() );
try {
// Get bank first
Collection lBanks = getBankSession().getBanks();
System.out.println( "RegularTeller.run(), banks: " + lBanks );
BankData lBank = (BankData) lBanks.iterator().next();
while( !mExit && mException == null ) {
CustomerData lCustomer = null;
if( lRandom.nextInt( 100 ) < 10 ) {
lCustomer = getCustomerSession().createCustomer(
lBank.getId(), "test", 100 );
System.out.println( "RegularTeller.run(), new " +
lCustomer );
} else {
List lCustomers = (List) getBankSession().getCustomers(
lBank.getId() );
System.out.println( "RegularTeller.run(), # of customers:
" + lCustomers.size() );
lCustomer = (CustomerData) lCustomers.get(
lRandom.nextInt( lCustomers.size() ) );
}
}
-------------------------------------------------------------------
the exception on the server-side:
-------------------------------------------------------------------
javax.transaction.TransactionRolledbackException: removing bean lock and it
has tx set!; nested exception is:
java.lang.IllegalStateException: removing bean lock and it has tx
set!
java.lang.IllegalStateException: removing bean lock and it has tx set!
at
org.jboss.ejb.plugins.lock.QueuedPessimisticEJBLock.removeRef(QueuedPessimis
ticEJBLock.java:468)
at
org.jboss.ejb.BeanLockManager.removeLockRef(BeanLockManager.java:78)
at
org.jboss.ejb.plugins.EntityLockInterceptor.invoke(EntityLockInterceptor.jav
a:142)
at
org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.java:138)
at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.
java:347)
at
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:100)
at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:12
7)
at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:170)
at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:428)
at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerI
nvoker.java:504)
at
org.jboss.ejb.plugins.jrmp.interfaces.GenericProxy.invokeContainer(GenericPr
oxy.java:335)
at
org.jboss.ejb.plugins.jrmp.interfaces.EntityProxy.invoke(EntityProxy.java:13
3)
at $Proxy249.getData(Unknown Source)
at
org.jboss.test.banknew.ejbeans.CustomerSessionBean.getCustomers(CustomerSess
ionBean.java:116)
at java.lang.reflect.Method.invoke(Native Method)
at
org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(Stateles
sSessionContainer.java:542)
at
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSe
ssionInstanceInterceptor.java:82)
at
org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.java:138)
at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.
java:347)
at
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:100)
at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:12
7)
at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:170)
at
org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.jav
a:286)
at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerI
nvoker.java:504)
at
org.jboss.ejb.plugins.jrmp.interfaces.GenericProxy.invokeContainer(GenericPr
oxy.java:335)
at
org.jboss.ejb.plugins.jrmp.interfaces.StatelessSessionProxy.invoke(Stateless
SessionProxy.java:123)
at $Proxy236.getCustomers(Unknown Source)
at
org.jboss.test.banknew.ejbeans.BankSessionBean.getCustomers(BankSessionBean.
java:114)
at java.lang.reflect.Method.invoke(Native Method)
at
org.jboss.ejb.StatelessSessionContainer$ContainerInterceptor.invoke(Stateles
sSessionContainer.java:542)
at
org.jboss.ejb.plugins.StatelessSessionInstanceInterceptor.invoke(StatelessSe
ssionInstanceInterceptor.java:82)
at
org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.java:138)
at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.
java:347)
at
org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:100)
at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:12
7)
at
org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:170)
at
org.jboss.ejb.StatelessSessionContainer.invoke(StatelessSessionContainer.jav
a:286)
at
org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invoke(JRMPContainerI
nvoker.java:410)
at java.lang.reflect.Method.invoke(Native Method)
at
sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:241)
at sun.rmi.transport.Transport$1.run(Transport.java:152)
at java.security.AccessController.doPrivileged(Native Method)
at sun.rmi.transport.Transport.serviceCall(Transport.java:148)
at
sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:465)
at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:7
06)
at java.lang.Thread.run(Thread.java:484)
-------------------------------------------------------------------
This happens on my computer (W2K, 256MB, Pentium IV) after 1000 customers
are created. As you can see the test creates a new customer on every 10th
loop
otherwise it will retrieve all customers from the JBoss server.
Is this a known problem or shall I add it to the bug list ?
xxxxxxxxxxxxxxxxx
Andreas Schaefer
Senior Consultant
JBoss Group, LLC
xxxxxxxxxxxxxxxxx
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development