<p dir="auto"><strong><a href="https://jira.spring.io/secure/ViewProfile.jspa?name=lmm" rel="nofollow">Michael Donaghy</a></strong> opened <strong><a href="https://jira.spring.io/browse/SPR-9031?redirect=false" rel="nofollow">SPR-9031</a></strong> and commented</p>
<p dir="auto">It seems that using <code class="notranslate">@ComponentScan</code> with an includeFilters set only works for top-level contexts, not for <code class="notranslate">@Imported</code> contexts? See the attached minimal example maven project: the LowLevelContext works correctly, but the HighLevelContext does not, even though all the HighLevelContext does is to <code class="notranslate">@Import</code> the LowLevelContext.</p>
<p dir="auto">Stepping through in a debugger I found that different AnnotationMetadata implementations are passed to ConfigurationClassParser#doProcessConfigurationClass in the two cases:<br>
For LowLevelContext a StandardAnnotationMetadata is used (and behaves correctly).<br>
For HighLevelContext an AnnotationMetadataReadingVisitor is used, and seems to return an empty array from getAnnotationAttributes(ComponentScan.class.getName()).get("includeFilters"), which is incorrect.</p>
<hr>
<p dir="auto"><strong>Affects:</strong> 3.1 GA</p>
<p dir="auto"><strong>Attachments:</strong></p>
<ul dir="auto">
<li><a href="https://jira.spring.io/secure/attachment/19316/springproblem.tar.gz" rel="nofollow">springproblem.tar.gz</a> (<em>1.58 kB</em>)</li>
</ul>
<p dir="auto"><strong>Issue Links:</strong></p>
<ul dir="auto">
<li><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="398114714" data-permission-text="Title is private" data-url="https://github.com/spring-projects/spring-framework/issues/13361" data-hovercard-type="issue" data-hovercard-url="/spring-projects/spring-framework/issues/13361/hovercard" href="https://github.com/spring-projects/spring-framework/issues/13361">#13361</a> <code class="notranslate">@ComponentScan</code>(includeFilters=<code class="notranslate">@Filter</code>(...)) fails when <code class="notranslate">@Import</code>'ed (<em><strong>"is duplicated by"</strong></em>)</li>
<li><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="398117136" data-permission-text="Title is private" data-url="https://github.com/spring-projects/spring-framework/issues/13738" data-hovercard-type="issue" data-hovercard-url="/spring-projects/spring-framework/issues/13738/hovercard" href="https://github.com/spring-projects/spring-framework/issues/13738">#13738</a> ClassPathBeanDefinitionScanner vs ClassPathBeanDefinitionScanner: difference in behavior when dealing with <code class="notranslate">@ComponentScan</code> excludeFilters (<em><strong>"is duplicated by"</strong></em>)</li>
<li><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="398110272" data-permission-text="Title is private" data-url="https://github.com/spring-projects/spring-framework/issues/12634" data-hovercard-type="issue" data-hovercard-url="/spring-projects/spring-framework/issues/12634/hovercard" href="https://github.com/spring-projects/spring-framework/issues/12634">#12634</a> <code class="notranslate">@ComponentScan</code> does not work when referenced from XML config</li>
<li><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="398118042" data-permission-text="Title is private" data-url="https://github.com/spring-projects/spring-framework/issues/13871" data-hovercard-type="issue" data-hovercard-url="/spring-projects/spring-framework/issues/13871/hovercard" href="https://github.com/spring-projects/spring-framework/issues/13871">#13871</a> Reduce log level for message re: missing annotation</li>
</ul>
<p dir="auto"><strong>Referenced from:</strong> commits <a class="commit-link" data-hovercard-type="commit" data-hovercard-url="https://github.com/spring-attic/spring-framework-issues/commit/dd79a1bbee3b248eecbf916a2367eecfdfb97ff6/hovercard" href="https://github.com/spring-attic/spring-framework-issues/commit/dd79a1bbee3b248eecbf916a2367eecfdfb97ff6">spring-attic/spring-framework-issues@<tt>dd79a1b</tt></a></p>
<p dir="auto"><strong><a href="https://jira.spring.io/secure/ViewProfile.jspa?name=yogeshbhootada" rel="nofollow">Yogesh</a></strong> opened <strong><a href="https://jira.spring.io/browse/SPR-4916?redirect=false" rel="nofollow">SPR-4916</a></strong> and commented</p>
<p dir="auto">Deploy a MessageBean that is using BMT.  The following sequence of events in the onMessage() method will cause the IllegalStateException:</p>
<ol dir="auto">
<li>create TransactionTemplate with PROPAGATION_REQUIRED</li>
<li>in the execute do this:<br>
2a. Connection conn = DataSourceUtils.getConnection(ds);<br>
2b. DataSourceUtils.releaseConnection(conn, ds);<br>
2c. call method that does the following:<br>
I. create TransactionTemplate with PROPAGATION_REQUIRES_NEW<br>
II. call execute and the exception is thrown.</li>
</ol>
<p dir="auto">Here is the debug and stacktrace:</p>
<p dir="auto">12:03:50,703 INFO  [STDOUT] MyMessageBean got message!<br>
12:03:50,705 INFO  [STDOUT] // obtain DataSource<br>
12:03:50,707 INFO  [STDOUT] *** Create TransactionManager<br>
12:03:50,900 DEBUG [org.springframework.transaction.jta.JtaTransactionManager] Retrieving JTA UserTransaction from JNDI location [java:comp/UserTransaction]<br>
12:03:50,901 DEBUG [org.springframework.jndi.JndiTemplate] Looking up JNDI object with name [java:comp/UserTransaction]<br>
12:03:50,981 DEBUG [org.springframework.transaction.jta.JtaTransactionManager] Retrieving JTA TransactionManager from JNDI location [java:/TransactionManager]<br>
12:03:50,983 DEBUG [org.springframework.jndi.JndiTemplate] Looking up JNDI object with name [java:/TransactionManager]<br>
12:03:50,985 INFO  [org.springframework.transaction.jta.JtaTransactionManager] Using JTA UserTransaction: org.jboss.ejb.EnterpriseContext$UserTransactionImpl@66d882<br>
12:03:50,987 INFO  [org.springframework.transaction.jta.JtaTransactionManager] Using JTA TransactionManager: org.jboss.tm.TxManager@104e65<br>
12:03:50,988 INFO  [STDOUT] *** Create TransactionTemplate<br>
12:03:50,997 INFO  [STDOUT] *** Propagation=0<br>
12:03:51,005 DEBUG [org.springframework.transaction.jta.JtaTransactionManager] Using transaction object [org.springframework.transaction.jta.JtaTransactionObject@401ab1]<br>
12:03:51,007 DEBUG [org.springframework.transaction.jta.JtaTransactionManager] Creating new transaction with name [null]<br>
12:03:51,017 DEBUG [org.springframework.transaction.support.TransactionSynchronizationManager] Initializing transaction synchronization<br>
12:03:51,026 INFO  [STDOUT] *** doInTransaction org.springframework.transaction.support.DefaultTransactionStatus@bc60f2<br>
12:03:51,056 DEBUG [org.springframework.jdbc.datasource.DataSourceUtils] Fetching JDBC Connection from DataSource<br>
12:03:53,260 DEBUG [org.springframework.jdbc.datasource.DataSourceUtils] Registering transaction synchronization for JDBC Connection<br>
12:03:53,419 DEBUG [org.springframework.transaction.support.TransactionSynchronizationManager] Bound value [org.springframework.jdbc.datasource.ConnectionHolder@2900c9] for key [org.jboss.resource.adapter.jdbc.WrapperDataSource@bf2c98] to thread [JMS SessionPool Worker-0]<br>
12:03:53,420 INFO  [STDOUT] *** doInConnection<br>
12:03:53,420 DEBUG [org.springframework.transaction.support.TransactionSynchronizationManager] Retrieved value [org.springframework.jdbc.datasource.ConnectionHolder@2900c9] for key [org.jboss.resource.adapter.jdbc.WrapperDataSource@bf2c98] bound to thread [JMS SessionPool Worker-0]<br>
12:03:53,421 INFO  [STDOUT] === Create TransactionTemplate 2<br>
12:03:53,422 INFO  [STDOUT] === Propagation=3<br>
12:03:53,424 DEBUG [org.springframework.transaction.jta.JtaTransactionManager] Using transaction object [org.springframework.transaction.jta.JtaTransactionObject@1548ee]<br>
12:03:53,424 DEBUG [org.springframework.transaction.jta.JtaTransactionManager] Suspending current transaction, creating new transaction with name [null]<br>
12:03:53,425 DEBUG [org.springframework.transaction.support.TransactionSynchronizationManager] Removed value [org.springframework.jdbc.datasource.ConnectionHolder@2900c9] for key [org.jboss.resource.adapter.jdbc.WrapperDataSource@bf2c98] from thread [JMS SessionPool Worker-0]<br>
12:03:53,433 DEBUG [org.springframework.transaction.support.TransactionSynchronizationManager] Clearing transaction synchronization<br>
12:03:53,438 DEBUG [org.springframework.transaction.support.TransactionTemplate] Initiating transaction rollback on application exception<br>
java.lang.IllegalStateException: Trying to change transaction TransactionImpl:XidImpl[FormatId=257, GlobalId=samoa.local/20, BranchQual=, localId=20] in enlist!<br>
at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:551)<br>
at org.jboss.resource.connectionmanager.TxConnectionManager.transactionStarted(TxConnectionManager.java:357)<br>
at org.jboss.resource.connectionmanager.CachedConnectionManager.userTransactionStarted(CachedConnectionManager.java:403)<br>
at org.jboss.ejb.EnterpriseContext$UserTransactionImpl.begin(EnterpriseContext.java:576)<br>
at org.springframework.transaction.jta.JtaTransactionManager.doJtaBegin(JtaTransactionManager.java:664)<br>
at org.springframework.transaction.jta.JtaTransactionManager.doBegin(JtaTransactionManager.java:622)<br>
at org.springframework.transaction.support.AbstractPlatformTransactionManager.handleExistingTransaction(AbstractPlatformTransactionManager.java:320)<br>
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:262)<br>
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:111)<br>
at com.springdeveloper.ejb.MyMessageBean.testSpring2(MyMessageBean.java:95)<br>
at com.springdeveloper.ejb.MyMessageBean.access$100(MyMessageBean.java:24)<br>
at com.springdeveloper.ejb.MyMessageBean$1.doInTransactionWithoutResult(MyMessageBean.java:80)<br>
at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)<br>
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:114)<br>
at com.springdeveloper.ejb.MyMessageBean.testSpring(MyMessageBean.java:71)<br>
at com.springdeveloper.ejb.MyMessageBean.onMessage(MyMessageBean.java:54)<br>
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br>
at java.lang.reflect.Method.invoke(Method.java:585)<br>
at org.jboss.invocation.Invocation.performCall(Invocation.java:345)<br>
at org.jboss.ejb.MessageDrivenContainer$ContainerInterceptor.invoke(MessageDrivenContainer.java:475)<br>
at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:149)<br>
at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48)<br>
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:106)<br>
at org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(AbstractTxInterceptorBMT.java:158)<br>
at org.jboss.ejb.plugins.MessageDrivenTxInterceptorBMT.invoke(MessageDrivenTxInterceptorBMT.java:32)<br>
at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterceptor.java:101)<br>
at org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(RunAsSecurityInterceptor.java:94)<br>
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)<br>
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)<br>
at org.jboss.ejb.MessageDrivenContainer.internalInvoke(MessageDrivenContainer.java:389)<br>
at org.jboss.ejb.Container.invoke(Container.java:873)<br>
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:1077)<br>
at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1379)<br>
at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:256)<br>
at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:904)<br>
at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:160)<br>
at org.jboss.mq.SpySession.run(SpySession.java:333)<br>
at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:180)<br>
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)<br>
at java.lang.Thread.run(Thread.java:613)<br>
12:03:53,447 DEBUG [org.springframework.transaction.jta.JtaTransactionManager] Triggering beforeCompletion synchronization<br>
12:03:53,448 ERROR [org.springframework.transaction.support.TransactionTemplate] Application exception overridden by rollback exception<br>
java.lang.IllegalStateException: Trying to change transaction TransactionImpl:XidImpl[FormatId=257, GlobalId=samoa.local/20, BranchQual=, localId=20] in enlist!<br>
at org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener.enlist(TxConnectionManager.java:551)<br>
at org.jboss.resource.connectionmanager.TxConnectionManager.transactionStarted(TxConnectionManager.java:357)<br>
at org.jboss.resource.connectionmanager.CachedConnectionManager.userTransactionStarted(CachedConnectionManager.java:403)<br>
at org.jboss.ejb.EnterpriseContext$UserTransactionImpl.begin(EnterpriseContext.java:576)<br>
at org.springframework.transaction.jta.JtaTransactionManager.doJtaBegin(JtaTransactionManager.java:664)<br>
at org.springframework.transaction.jta.JtaTransactionManager.doBegin(JtaTransactionManager.java:622)<br>
at org.springframework.transaction.support.AbstractPlatformTransactionManager.handleExistingTransaction(AbstractPlatformTransactionManager.java:320)<br>
at org.springframework.transaction.support.AbstractPlatformTransactionManager.getTransaction(AbstractPlatformTransactionManager.java:262)<br>
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:111)<br>
at com.springdeveloper.ejb.MyMessageBean.testSpring2(MyMessageBean.java:95)<br>
at com.springdeveloper.ejb.MyMessageBean.access$100(MyMessageBean.java:24)<br>
at com.springdeveloper.ejb.MyMessageBean$1.doInTransactionWithoutResult(MyMessageBean.java:80)<br>
at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)<br>
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:114)<br>
at com.springdeveloper.ejb.MyMessageBean.testSpring(MyMessageBean.java:71)<br>
at com.springdeveloper.ejb.MyMessageBean.onMessage(MyMessageBean.java:54)<br>
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br>
at java.lang.reflect.Method.invoke(Method.java:585)<br>
at org.jboss.invocation.Invocation.performCall(Invocation.java:345)<br>
at org.jboss.ejb.MessageDrivenContainer$ContainerInterceptor.invoke(MessageDrivenContainer.java:475)<br>
at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:149)<br>
at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48)<br>
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:106)<br>
at org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(AbstractTxInterceptorBMT.java:158)<br>
at org.jboss.ejb.plugins.MessageDrivenTxInterceptorBMT.invoke(MessageDrivenTxInterceptorBMT.java:32)<br>
at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterceptor.java:101)<br>
at org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(RunAsSecurityInterceptor.java:94)<br>
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)<br>
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)<br>
at org.jboss.ejb.MessageDrivenContainer.internalInvoke(MessageDrivenContainer.java:389)<br>
at org.jboss.ejb.Container.invoke(Container.java:873)<br>
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:1077)<br>
at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1379)<br>
at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:256)<br>
at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:904)<br>
at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:160)<br>
at org.jboss.mq.SpySession.run(SpySession.java:333)<br>
at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:180)<br>
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)<br>
at java.lang.Thread.run(Thread.java:613)<br>
12:03:53,461 INFO  [org.jboss.resource.connectionmanager.CachedConnectionManager] Closing a connection for you.  Please close them yourself: org.jboss.resource.adapter.jdbc.WrappedConnection@d698d3<br>
java.lang.Throwable: STACKTRACE<br>
at org.jboss.resource.connectionmanager.CachedConnectionManager.registerConnection(CachedConnectionManager.java:333)<br>
at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:482)<br>
at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:894)<br>
at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:73)<br>
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:107)<br>
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77)<br>
at com.springdeveloper.ejb.MyMessageBean$1.doInTransactionWithoutResult(MyMessageBean.java:76)<br>
at org.springframework.transaction.support.TransactionCallbackWithoutResult.doInTransaction(TransactionCallbackWithoutResult.java:33)<br>
at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:114)<br>
at com.springdeveloper.ejb.MyMessageBean.testSpring(MyMessageBean.java:71)<br>
at com.springdeveloper.ejb.MyMessageBean.onMessage(MyMessageBean.java:54)<br>
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)<br>
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)<br>
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br>
at java.lang.reflect.Method.invoke(Method.java:585)<br>
at org.jboss.invocation.Invocation.performCall(Invocation.java:345)<br>
at org.jboss.ejb.MessageDrivenContainer$ContainerInterceptor.invoke(MessageDrivenContainer.java:475)<br>
at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:149)<br>
at org.jboss.ejb.plugins.CallValidationInterceptor.invoke(CallValidationInterceptor.java:48)<br>
at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:106)<br>
at org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(AbstractTxInterceptorBMT.java:158)<br>
at org.jboss.ejb.plugins.MessageDrivenTxInterceptorBMT.invoke(MessageDrivenTxInterceptorBMT.java:32)<br>
at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterceptor.java:101)<br>
at org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(RunAsSecurityInterceptor.java:94)<br>
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)<br>
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)<br>
at org.jboss.ejb.MessageDrivenContainer.internalInvoke(MessageDrivenContainer.java:389)<br>
at org.jboss.ejb.Container.invoke(Container.java:873)<br>
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:1077)<br>
at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1379)<br>
at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:256)<br>
at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:904)<br>
at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:160)<br>
at org.jboss.mq.SpySession.run(SpySession.java:333)<br>
at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:180)<br>
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)<br>
at java.lang.Thread.run(Thread.java:613)<br>
12:03:53,473 ERROR [org.jboss.ejb.plugins.MessageDrivenTxInterceptorBMT] Application error: BMT stateless bean MyMessageBean should complete transactions before returning (ejb1.1 spec, 11.6.1)<br>
12:03:53,478 ERROR [org.jboss.ejb.plugins.jms.JMSContainerInvoker] Exception in JMSCI message listener<br>
javax.ejb.EJBException: null; CausedByException is:<br>
Application error: BMT stateless bean MyMessageBean should complete transactions before returning (ejb1.1 spec, 11.6.1)<br>
at org.jboss.ejb.plugins.LogInterceptor.handleException(LogInterceptor.java:411)<br>
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:196)<br>
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)<br>
at org.jboss.ejb.MessageDrivenContainer.internalInvoke(MessageDrivenContainer.java:389)<br>
at org.jboss.ejb.Container.invoke(Container.java:873)<br>
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:1077)<br>
at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1379)<br>
at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:256)<br>
at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:904)<br>
at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:160)<br>
at org.jboss.mq.SpySession.run(SpySession.java:333)<br>
at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:180)<br>
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)<br>
at java.lang.Thread.run(Thread.java:613)<br>
java.rmi.RemoteException: Application error: BMT stateless bean MyMessageBean should complete transactions before returning (ejb1.1 spec, 11.6.1)<br>
at org.jboss.ejb.plugins.AbstractTxInterceptorBMT.checkStatelessDone(AbstractTxInterceptorBMT.java:225)<br>
at org.jboss.ejb.plugins.AbstractTxInterceptorBMT.invokeNext(AbstractTxInterceptorBMT.java:165)<br>
at org.jboss.ejb.plugins.MessageDrivenTxInterceptorBMT.invoke(MessageDrivenTxInterceptorBMT.java:32)<br>
at org.jboss.ejb.plugins.MessageDrivenInstanceInterceptor.invoke(MessageDrivenInstanceInterceptor.java:101)<br>
at org.jboss.ejb.plugins.RunAsSecurityInterceptor.invoke(RunAsSecurityInterceptor.java:94)<br>
at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:192)<br>
at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)<br>
at org.jboss.ejb.MessageDrivenContainer.internalInvoke(MessageDrivenContainer.java:389)<br>
at org.jboss.ejb.Container.invoke(Container.java:873)<br>
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.invoke(JMSContainerInvoker.java:1077)<br>
at org.jboss.ejb.plugins.jms.JMSContainerInvoker$MessageListenerImpl.onMessage(JMSContainerInvoker.java:1379)<br>
at org.jboss.jms.asf.StdServerSession.onMessage(StdServerSession.java:256)<br>
at org.jboss.mq.SpyMessageConsumer.sessionConsumerProcessMessage(SpyMessageConsumer.java:904)<br>
at org.jboss.mq.SpyMessageConsumer.addMessage(SpyMessageConsumer.java:160)<br>
at org.jboss.mq.SpySession.run(SpySession.java:333)<br>
at org.jboss.jms.asf.StdServerSession.run(StdServerSession.java:180)<br>
at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:743)<br>
at java.lang.Thread.run(Thread.java:613)</p>
<hr>
<p dir="auto"><strong>Affects:</strong> 1.2.5</p>
<p dir="auto"><strong>Issue Links:</strong></p>
<ul dir="auto">
<li><a class="issue-link js-issue-link" data-error-text="Failed to load title" data-id="398060723" data-permission-text="Title is private" data-url="https://github.com/spring-projects/spring-framework/issues/6084" data-hovercard-type="issue" data-hovercard-url="/spring-projects/spring-framework/issues/6084/hovercard" href="https://github.com/spring-projects/spring-framework/issues/6084">#6084</a> IllegalStateException thrown by JBoss 4.0.3 when PROPAGATION_REQUIRES_NEW used during active transaction in MessageBean with BMT (<em><strong>"duplicates"</strong></em>)</li>
</ul>