Jetty Problem

classic Classic list List threaded Threaded
19 messages Options
Reply | Threaded
Open this post in threaded view
|

Jetty Problem

urckle
I have followed the instructions on the respective websites but I get the following error when I attempt to use bitronix on Jetty:


D:\temp\Jetty>java -Xms256m -Xmx512m -jar start.jar etc/jetty.xml etc/jetty-ams.xml
20:21:04,675 INFO  [log] Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
20:21:05,675 INFO  [BitronixTransactionManager] Bitronix Transaction Manager version 1.2
20:21:05,675 INFO  [Configuration] loading default configuration
20:21:05,675 INFO  [Configuration] no configuration file found, using default settings
20:21:05,675 WARN  [Configuration] cannot get this JVM unique ID. Make sure it is configured and you only use ASCII characters. Will use IP address instead (unsafe for production usage!).
20:21:05,691 INFO  [Configuration] JVM unique ID: <10.10.10.122>
20:21:05,863 INFO  [Recoverer] recovery committed 0 dangling transaction(s) and rolled back 0 aborted transaction(s) on resource(s) jdbc/amsDS2, btmXaJmsConnectionFactory
20:21:05,863 WARN  [log] Config error at <New id="tx" class="org.mortbay.jetty.plus.naming.Transaction"><Arg>
                        <Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices"/>
                </Arg></New>
20:21:05,863 WARN  [log] EXCEPTION
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at org.mortbay.xml.XmlConfiguration.newObj(XmlConfiguration.java:597)
        at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:245)
        at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:203)
        at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:937)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.mortbay.start.Main.invokeMain(Main.java:183)
        at org.mortbay.start.Main.start(Main.java:497)
        at org.mortbay.start.Main.main(Main.java:115)
Caused by: java.lang.NullPointerException
        at javax.naming.Reference.toString(Unknown Source)
        at java.lang.String.valueOf(Unknown Source)
        at java.lang.StringBuffer.append(Unknown Source)
        at org.mortbay.naming.NamingContext.addBinding(NamingContext.java:1367)
        at org.mortbay.naming.NamingContext.rebind(NamingContext.java:1000)
        at org.mortbay.naming.NamingContext.rebind(NamingContext.java:1063)
        at org.mortbay.naming.local.localContextRoot.rebind(localContextRoot.java:213)
        at javax.naming.InitialContext.rebind(Unknown Source)
        at org.mortbay.naming.NamingUtil.bind(NamingUtil.java:80)
        at org.mortbay.jetty.plus.naming.NamingEntry.save(NamingEntry.java:511)
        at org.mortbay.jetty.plus.naming.NamingEntry.<init>(NamingEntry.java:360)
        at org.mortbay.jetty.plus.naming.Transaction.<init>(Transaction.java:57)
        ... 15 more
20:21:05,878 ERROR [log] Nested in java.lang.reflect.InvocationTargetException:
java.lang.NullPointerException
        at javax.naming.Reference.toString(Unknown Source)
        at java.lang.String.valueOf(Unknown Source)
        at java.lang.StringBuffer.append(Unknown Source)
        at org.mortbay.naming.NamingContext.addBinding(NamingContext.java:1367)
        at org.mortbay.naming.NamingContext.rebind(NamingContext.java:1000)
        at org.mortbay.naming.NamingContext.rebind(NamingContext.java:1063)
        at org.mortbay.naming.local.localContextRoot.rebind(localContextRoot.java:213)
        at javax.naming.InitialContext.rebind(Unknown Source)
        at org.mortbay.naming.NamingUtil.bind(NamingUtil.java:80)
        at org.mortbay.jetty.plus.naming.NamingEntry.save(NamingEntry.java:511)
        at org.mortbay.jetty.plus.naming.NamingEntry.<init>(NamingEntry.java:360)
        at org.mortbay.jetty.plus.naming.Transaction.<init>(Transaction.java:57)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at org.mortbay.xml.XmlConfiguration.newObj(XmlConfiguration.java:597)
        at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:245)
        at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:203)
        at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:937)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.mortbay.start.Main.invokeMain(Main.java:183)
        at org.mortbay.start.Main.start(Main.java:497)
        at org.mortbay.start.Main.main(Main.java:115)


Config file is as follows:

        <New id="PMC-Datasource-2" class="org.mortbay.jetty.plus.naming.Resource">
          <Arg>jdbc/amsDS2</Arg>
          <Arg>
                <New class="bitronix.tm.resource.jdbc.PoolingDataSource">
                        <Set name="uniqueName">jdbc/amsDS2</Set>
                        <Set name="className">com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</Set>
                        <Set name="minPoolSize">3</Set>
                        <Set name="maxPoolSize">5</Set>
                        <Get name="driverProperties">
                  <Put name="url">jdbc:mysql://127.0.0.1:3306/YADA?useUnicode=true</Put>
                                <Put name="user">am_portal_user</Put>
                                <Put name="password">password</Put>       
                        </Get>
                        <Call name="init" />
                </New>
          </Arg>
        </New>


       
        <New id="bitronix-connectionFactoryBean" class="org.mortbay.jetty.plus.naming.Resource">
          <Arg>jms/btmXaJmsConnectionFactory</Arg>
          <Arg>
                <New class="bitronix.tm.resource.jms.PoolingConnectionFactory">
                        <Set name="uniqueName">btmXaJmsConnectionFactory</Set>
                        <Set name="className">org.apache.activemq.ActiveMQXAConnectionFactory</Set>
                        <Set name="poolSize">2</Set>
                        <Set name="allowLocalTransactions">true</Set>
                        <Get name="driverProperties">
                  <Put name="brokerURL">tcp://localhost:61616</Put>                                                                                       
                        </Get>
                        <Call name="init" />
                </New>
          </Arg>
        </New>

       
        <Call name="getConfiguration" class="bitronix.tm.TransactionManagerServices">
                <Set name="serverId">jetty-btm-node1</Set>
                <Set name="logPart1Filename"><SystemProperty name="jetty.home" default="." />btm1.tlog</Set>
                <Set name="logPart2Filename"><SystemProperty name="jetty.home" default="." />btm2.tlog</Set>
        </Call>
       
       
       
        <New id="tx" class="org.mortbay.jetty.plus.naming.Transaction">
                <Arg>
                        <Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
                </Arg>
        </New> 


Any suggestions appreciated!
       
Reply | Threaded
Open this post in threaded view
|

Re: Jetty Problem

Ludovic Orban
Administrator
Hi,

Which version of Jetty are you using so I can try to reproduce the error here ?

Thanks,
Ludovic

urckle wrote
I have followed the instructions on the respective websites but I get the following error when I attempt to use bitronix on Jetty:


D:\temp\Jetty>java -Xms256m -Xmx512m -jar start.jar etc/jetty.xml etc/jetty-ams.xml
20:21:04,675 INFO  [log] Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
20:21:05,675 INFO  [BitronixTransactionManager] Bitronix Transaction Manager version 1.2
20:21:05,675 INFO  [Configuration] loading default configuration
20:21:05,675 INFO  [Configuration] no configuration file found, using default settings
20:21:05,675 WARN  [Configuration] cannot get this JVM unique ID. Make sure it is configured and you only use ASCII characters. Will use IP address instead (unsafe for production usage!).
20:21:05,691 INFO  [Configuration] JVM unique ID: <10.10.10.122>
20:21:05,863 INFO  [Recoverer] recovery committed 0 dangling transaction(s) and rolled back 0 aborted transaction(s) on resource(s) jdbc/amsDS2, btmXaJmsConnectionFactory
20:21:05,863 WARN  [log] Config error at <New id="tx" class="org.mortbay.jetty.plus.naming.Transaction"><Arg>
                        <Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices"/>
                </Arg></New>
20:21:05,863 WARN  [log] EXCEPTION
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at org.mortbay.xml.XmlConfiguration.newObj(XmlConfiguration.java:597)
        at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:245)
        at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:203)
        at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:937)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.mortbay.start.Main.invokeMain(Main.java:183)
        at org.mortbay.start.Main.start(Main.java:497)
        at org.mortbay.start.Main.main(Main.java:115)
Caused by: java.lang.NullPointerException
        at javax.naming.Reference.toString(Unknown Source)
        at java.lang.String.valueOf(Unknown Source)
        at java.lang.StringBuffer.append(Unknown Source)
        at org.mortbay.naming.NamingContext.addBinding(NamingContext.java:1367)
        at org.mortbay.naming.NamingContext.rebind(NamingContext.java:1000)
        at org.mortbay.naming.NamingContext.rebind(NamingContext.java:1063)
        at org.mortbay.naming.local.localContextRoot.rebind(localContextRoot.java:213)
        at javax.naming.InitialContext.rebind(Unknown Source)
        at org.mortbay.naming.NamingUtil.bind(NamingUtil.java:80)
        at org.mortbay.jetty.plus.naming.NamingEntry.save(NamingEntry.java:511)
        at org.mortbay.jetty.plus.naming.NamingEntry.<init>(NamingEntry.java:360)
        at org.mortbay.jetty.plus.naming.Transaction.<init>(Transaction.java:57)
        ... 15 more
20:21:05,878 ERROR [log] Nested in java.lang.reflect.InvocationTargetException:
java.lang.NullPointerException
        at javax.naming.Reference.toString(Unknown Source)
        at java.lang.String.valueOf(Unknown Source)
        at java.lang.StringBuffer.append(Unknown Source)
        at org.mortbay.naming.NamingContext.addBinding(NamingContext.java:1367)
        at org.mortbay.naming.NamingContext.rebind(NamingContext.java:1000)
        at org.mortbay.naming.NamingContext.rebind(NamingContext.java:1063)
        at org.mortbay.naming.local.localContextRoot.rebind(localContextRoot.java:213)
        at javax.naming.InitialContext.rebind(Unknown Source)
        at org.mortbay.naming.NamingUtil.bind(NamingUtil.java:80)
        at org.mortbay.jetty.plus.naming.NamingEntry.save(NamingEntry.java:511)
        at org.mortbay.jetty.plus.naming.NamingEntry.<init>(NamingEntry.java:360)
        at org.mortbay.jetty.plus.naming.Transaction.<init>(Transaction.java:57)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at org.mortbay.xml.XmlConfiguration.newObj(XmlConfiguration.java:597)
        at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:245)
        at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:203)
        at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:937)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.mortbay.start.Main.invokeMain(Main.java:183)
        at org.mortbay.start.Main.start(Main.java:497)
        at org.mortbay.start.Main.main(Main.java:115)


Config file is as follows:

        <New id="PMC-Datasource-2" class="org.mortbay.jetty.plus.naming.Resource">
          <Arg>jdbc/amsDS2</Arg>
          <Arg>
                <New class="bitronix.tm.resource.jdbc.PoolingDataSource">
                        <Set name="uniqueName">jdbc/amsDS2</Set>
                        <Set name="className">com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</Set>
                        <Set name="minPoolSize">3</Set>
                        <Set name="maxPoolSize">5</Set>
                        <Get name="driverProperties">
                  <Put name="url">jdbc:mysql://127.0.0.1:3306/YADA?useUnicode=true</Put>
                                <Put name="user">am_portal_user</Put>
                                <Put name="password">password</Put>       
                        </Get>
                        <Call name="init" />
                </New>
          </Arg>
        </New>


       
        <New id="bitronix-connectionFactoryBean" class="org.mortbay.jetty.plus.naming.Resource">
          <Arg>jms/btmXaJmsConnectionFactory</Arg>
          <Arg>
                <New class="bitronix.tm.resource.jms.PoolingConnectionFactory">
                        <Set name="uniqueName">btmXaJmsConnectionFactory</Set>
                        <Set name="className">org.apache.activemq.ActiveMQXAConnectionFactory</Set>
                        <Set name="poolSize">2</Set>
                        <Set name="allowLocalTransactions">true</Set>
                        <Get name="driverProperties">
                  <Put name="brokerURL">tcp://localhost:61616</Put>                                                                                       
                        </Get>
                        <Call name="init" />
                </New>
          </Arg>
        </New>

       
        <Call name="getConfiguration" class="bitronix.tm.TransactionManagerServices">
                <Set name="serverId">jetty-btm-node1</Set>
                <Set name="logPart1Filename"><SystemProperty name="jetty.home" default="." />btm1.tlog</Set>
                <Set name="logPart2Filename"><SystemProperty name="jetty.home" default="." />btm2.tlog</Set>
        </Call>
       
       
       
        <New id="tx" class="org.mortbay.jetty.plus.naming.Transaction">
                <Arg>
                        <Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
                </Arg>
        </New> 


Any suggestions appreciated!
       
Reply | Threaded
Open this post in threaded view
|

Re: Jetty Problem

urckle
Hi Ludovic,
I am using jetty-6.1.5.

Thanks
Andre


Ludovic Orban wrote
Hi,

Which version of Jetty are you using so I can try to reproduce the error here ?

Thanks,
Ludovic

urckle wrote
I have followed the instructions on the respective websites but I get the following error when I attempt to use bitronix on Jetty:


D:\temp\Jetty>java -Xms256m -Xmx512m -jar start.jar etc/jetty.xml etc/jetty-ams.xml
20:21:04,675 INFO  [log] Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
20:21:05,675 INFO  [BitronixTransactionManager] Bitronix Transaction Manager version 1.2
20:21:05,675 INFO  [Configuration] loading default configuration
20:21:05,675 INFO  [Configuration] no configuration file found, using default settings
20:21:05,675 WARN  [Configuration] cannot get this JVM unique ID. Make sure it is configured and you only use ASCII characters. Will use IP address instead (unsafe for production usage!).
20:21:05,691 INFO  [Configuration] JVM unique ID: <10.10.10.122>
20:21:05,863 INFO  [Recoverer] recovery committed 0 dangling transaction(s) and rolled back 0 aborted transaction(s) on resource(s) jdbc/amsDS2, btmXaJmsConnectionFactory
20:21:05,863 WARN  [log] Config error at <New id="tx" class="org.mortbay.jetty.plus.naming.Transaction"><Arg>
                        <Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices"/>
                </Arg></New>
20:21:05,863 WARN  [log] EXCEPTION
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at org.mortbay.xml.XmlConfiguration.newObj(XmlConfiguration.java:597)
        at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:245)
        at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:203)
        at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:937)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.mortbay.start.Main.invokeMain(Main.java:183)
        at org.mortbay.start.Main.start(Main.java:497)
        at org.mortbay.start.Main.main(Main.java:115)
Caused by: java.lang.NullPointerException
        at javax.naming.Reference.toString(Unknown Source)
        at java.lang.String.valueOf(Unknown Source)
        at java.lang.StringBuffer.append(Unknown Source)
        at org.mortbay.naming.NamingContext.addBinding(NamingContext.java:1367)
        at org.mortbay.naming.NamingContext.rebind(NamingContext.java:1000)
        at org.mortbay.naming.NamingContext.rebind(NamingContext.java:1063)
        at org.mortbay.naming.local.localContextRoot.rebind(localContextRoot.java:213)
        at javax.naming.InitialContext.rebind(Unknown Source)
        at org.mortbay.naming.NamingUtil.bind(NamingUtil.java:80)
        at org.mortbay.jetty.plus.naming.NamingEntry.save(NamingEntry.java:511)
        at org.mortbay.jetty.plus.naming.NamingEntry.<init>(NamingEntry.java:360)
        at org.mortbay.jetty.plus.naming.Transaction.<init>(Transaction.java:57)
        ... 15 more
20:21:05,878 ERROR [log] Nested in java.lang.reflect.InvocationTargetException:
java.lang.NullPointerException
        at javax.naming.Reference.toString(Unknown Source)
        at java.lang.String.valueOf(Unknown Source)
        at java.lang.StringBuffer.append(Unknown Source)
        at org.mortbay.naming.NamingContext.addBinding(NamingContext.java:1367)
        at org.mortbay.naming.NamingContext.rebind(NamingContext.java:1000)
        at org.mortbay.naming.NamingContext.rebind(NamingContext.java:1063)
        at org.mortbay.naming.local.localContextRoot.rebind(localContextRoot.java:213)
        at javax.naming.InitialContext.rebind(Unknown Source)
        at org.mortbay.naming.NamingUtil.bind(NamingUtil.java:80)
        at org.mortbay.jetty.plus.naming.NamingEntry.save(NamingEntry.java:511)
        at org.mortbay.jetty.plus.naming.NamingEntry.<init>(NamingEntry.java:360)
        at org.mortbay.jetty.plus.naming.Transaction.<init>(Transaction.java:57)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at org.mortbay.xml.XmlConfiguration.newObj(XmlConfiguration.java:597)
        at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:245)
        at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:203)
        at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:937)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.mortbay.start.Main.invokeMain(Main.java:183)
        at org.mortbay.start.Main.start(Main.java:497)
        at org.mortbay.start.Main.main(Main.java:115)


Config file is as follows:

        <New id="PMC-Datasource-2" class="org.mortbay.jetty.plus.naming.Resource">
          <Arg>jdbc/amsDS2</Arg>
          <Arg>
                <New class="bitronix.tm.resource.jdbc.PoolingDataSource">
                        <Set name="uniqueName">jdbc/amsDS2</Set>
                        <Set name="className">com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</Set>
                        <Set name="minPoolSize">3</Set>
                        <Set name="maxPoolSize">5</Set>
                        <Get name="driverProperties">
                  <Put name="url">jdbc:mysql://127.0.0.1:3306/YADA?useUnicode=true</Put>
                                <Put name="user">am_portal_user</Put>
                                <Put name="password">password</Put>       
                        </Get>
                        <Call name="init" />
                </New>
          </Arg>
        </New>


       
        <New id="bitronix-connectionFactoryBean" class="org.mortbay.jetty.plus.naming.Resource">
          <Arg>jms/btmXaJmsConnectionFactory</Arg>
          <Arg>
                <New class="bitronix.tm.resource.jms.PoolingConnectionFactory">
                        <Set name="uniqueName">btmXaJmsConnectionFactory</Set>
                        <Set name="className">org.apache.activemq.ActiveMQXAConnectionFactory</Set>
                        <Set name="poolSize">2</Set>
                        <Set name="allowLocalTransactions">true</Set>
                        <Get name="driverProperties">
                  <Put name="brokerURL">tcp://localhost:61616</Put>                                                                                       
                        </Get>
                        <Call name="init" />
                </New>
          </Arg>
        </New>

       
        <Call name="getConfiguration" class="bitronix.tm.TransactionManagerServices">
                <Set name="serverId">jetty-btm-node1</Set>
                <Set name="logPart1Filename"><SystemProperty name="jetty.home" default="." />btm1.tlog</Set>
                <Set name="logPart2Filename"><SystemProperty name="jetty.home" default="." />btm2.tlog</Set>
        </Call>
       
       
       
        <New id="tx" class="org.mortbay.jetty.plus.naming.Transaction">
                <Arg>
                        <Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
                </Arg>
        </New> 


Any suggestions appreciated!
       
Reply | Threaded
Open this post in threaded view
|

Re: Jetty Problem

urckle
In reply to this post by Ludovic Orban
Ludovic Orban wrote
Hi,
Hi Ludovic,
the nabble site has been down so I have not been able to get back to you.

The update jar provided (1.3...) allows me to get the jetty server started. Thanks

However, I am getting problems trying to insert records to my database!

my setup is :
- Spring app - but DS and JMS connection pools set up in jetty.xml
- JPA (Hibernate so created the add on jar for transaction manager lookup class etc.)
- JMS - Trying to use session pool to Active MQ version 4.1.1.

I can read from the db fine. But when I try to add new records I get:

Tue Feb 26 13:46:50 GMT 2008 DEBUG: Executing XA statement: XA START 0x6a657474792d62746d2d6e6f6465300000011855fee48c00000002,0x6a657474792d62746d2d6e6f6465300000011855fee48c00000004,0x42746e78
13:46:50,938 WARN  [JDBCExceptionReporter] SQL Error: 0, SQLState: null
13:46:50,938 ERROR [JDBCExceptionReporter] error enlisting a JdbcConnectionHandle of a JdbcPooledConnection from datasource jdbc/amsDS in state ACCESSIBLE wrapping com.mysql.jdbc.jdbc2.optional.MysqlX
AConnection@1acf5f7 on com.mysql.jdbc.jdbc2.optional.ConnectionWrapper@d39f3c
13:46:50,938 ERROR [DoCreateGroupAction] Error:
org.springframework.orm.jpa.JpaSystemException: org.hibernate.exception.GenericJDBCException: could not get or update next value; nested exception is javax.persistence.PersistenceException: org.hibern
ate.exception.GenericJDBCException: could not get or update next value
Caused by:
javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not get or update next value
        at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:630)
        at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:219)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:283)
        at $Proxy29.persist(Unknown Source)
        at org.springframework.orm.jpa.JpaTemplate$5.doInJpa(JpaTemplate.java:263)
        at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:191)
        at org.springframework.orm.jpa.JpaTemplate.persist(JpaTemplate.java:261)
        at com.adaptivemobile.dao.impl.JpaPortalDao.saveOrUpdate(JpaPortalDao.java:155)
        at com.adaptivemobile.business.group.impl.GroupManagerBean.createGroup(GroupManagerBean.java:149)
        at com.adaptivemobile.business.group.impl.GroupManagerBean$$FastClassByCGLIB$$52c1f178.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
        at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:693)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
        at com.adaptivemobile.business.aop.interceptor.AuditingMethodSecurityInterceptor.invoke(AuditingMethodSecurityInterceptor.java:82)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)
        at com.adaptivemobile.business.group.impl.GroupManagerBean$$EnhancerByCGLIB$$93b0fa7e.createGroup(<generated>)
        at com.adaptivemobile.portal.bp.action.DoCreateGroupAction.doExecute(DoCreateGroupAction.java:67)
        at com.adaptivemobile.portal.bp.action.GroupBaseAction.execute(GroupBaseAction.java:48)
        at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:413)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:225)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at com.adaptivemobile.portal.bp.filter.EncodingFilter.doFilter(EncodingFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.adaptivemobile.portal.bp.filter.AuditFilter.doFilter(AuditFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.adaptivemobile.portal.bp.filter.EnvironmentFilter.chainToPage(EnvironmentFilter.java:54)
        at com.adaptivemobile.portal.bp.filter.EnvironmentFilter.doFilter(EnvironmentFilter.java:42)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
        at com.adaptivemobile.portal.bp.security.AuthenticationFilter.doFilter(AuthenticationFilter.java:150)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.concurrent.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:95)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
        at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:313)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
Caused by: org.hibernate.exception.GenericJDBCException: could not get or update next value
        at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
        at org.hibernate.engine.TransactionHelper$1Work.doWork(TransactionHelper.java:41)
        at org.hibernate.engine.transaction.Isolater$JtaDelegate.delegateWork(Isolater.java:106)
        at org.hibernate.engine.transaction.Isolater.doIsolatedWork(Isolater.java:40)
        at org.hibernate.engine.TransactionHelper.doWorkInNewTransaction(TransactionHelper.java:51)
        at org.hibernate.id.MultipleHiLoPerTableGenerator.generate(MultipleHiLoPerTableGenerator.java:191)
        at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:99)
        at org.hibernate.ejb.event.EJB3PersistEventListener.saveWithGeneratedId(EJB3PersistEventListener.java:49)
        at org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:131)
        at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:87)
        at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:38)
        at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:618)
        at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:592)
        at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:596)
        at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:213)
        ... 77 more
Caused by: java.sql.SQLException: error enlisting a JdbcConnectionHandle of a JdbcPooledConnection from datasource jdbc/amsDS in state ACCESSIBLE wrapping com.mysql.jdbc.jdbc2.optional.MysqlXAConnecti
on@1acf5f7 on com.mysql.jdbc.jdbc2.optional.ConnectionWrapper@d39f3c
        at bitronix.tm.resource.jdbc.JdbcConnectionHandle.enlistResource(JdbcConnectionHandle.java:61)
        at bitronix.tm.resource.jdbc.JdbcConnectionHandle.prepareStatement(JdbcConnectionHandle.java:194)
        at org.hibernate.id.MultipleHiLoPerTableGenerator.doWorkInCurrentTransaction(MultipleHiLoPerTableGenerator.java:133)
        at org.hibernate.engine.TransactionHelper$1Work.doWork(TransactionHelper.java:38)
        ... 90 more
Caused by: bitronix.tm.internal.BitronixSystemException: cannot enlist an XAResourceHolderState with uniqueName=jdbc/amsDS XAResource=com.mysql.jdbc.jdbc2.optional.MysqlXAConnection@1acf5f7 with XID a
 Bitronix XID [6A657474792D62746D2D6E6F6465300000011855FEE48C00000002 : 6A657474792D62746D2D6E6F6465300000011855FEE48C00000004], error=XAER_OUTSIDE
        at bitronix.tm.BitronixTransaction.enlistResource(BitronixTransaction.java:68)
        at bitronix.tm.resource.common.TransactionContextHelper.enlistInCurrentTransaction(TransactionContextHelper.java:51)
        at bitronix.tm.resource.jdbc.JdbcConnectionHandle.enlistResource(JdbcConnectionHandle.java:59)
        ... 93 more
Caused by: com.mysql.jdbc.jdbc2.optional.MysqlXAException: XAER_OUTSIDE: Some work is done outside global transaction
        at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.mapXAExceptionFromSQLException(MysqlXAConnection.java:562)
        at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.dispatchCommand(MysqlXAConnection.java:545)
        at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.start(MysqlXAConnection.java:485)
        at bitronix.tm.internal.XAResourceHolderState.start(XAResourceHolderState.java:147)
        at bitronix.tm.internal.XAResourceManager.enlist(XAResourceManager.java:84)
        at bitronix.tm.BitronixTransaction.enlistResource(BitronixTransaction.java:66)
        ... 95 more
13:46:50,954 ERROR [GroupBaseAction] Error:
javax.servlet.ServletException: org.springframework.orm.jpa.JpaSystemException: org.hibernate.exception.GenericJDBCException: could not get or update next value; nested exception is javax.persistence.
PersistenceException: org.hibernate.exception.GenericJDBCException: could not get or update next value
        at com.adaptivemobile.portal.bp.action.DoCreateGroupAction.doExecute(DoCreateGroupAction.java:78)
        at com.adaptivemobile.portal.bp.action.GroupBaseAction.execute(GroupBaseAction.java:48)
        at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:413)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:225)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at com.adaptivemobile.portal.bp.filter.EncodingFilter.doFilter(EncodingFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.adaptivemobile.portal.bp.filter.AuditFilter.doFilter(AuditFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.adaptivemobile.portal.bp.filter.EnvironmentFilter.chainToPage(EnvironmentFilter.java:54)
        at com.adaptivemobile.portal.bp.filter.EnvironmentFilter.doFilter(EnvironmentFilter.java:42)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
        at com.adaptivemobile.portal.bp.security.AuthenticationFilter.doFilter(AuthenticationFilter.java:150)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.concurrent.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:95)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
        at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:313)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
Caused by: org.springframework.orm.jpa.JpaSystemException: org.hibernate.exception.GenericJDBCException: could not get or update next value; nested exception is javax.persistence.PersistenceException:
 org.hibernate.exception.GenericJDBCException: could not get or update next value
        at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:215)
        at org.springframework.orm.jpa.DefaultJpaDialect.translateExceptionIfPossible(DefaultJpaDialect.java:113)
        at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:212)
        at org.springframework.orm.jpa.JpaAccessor.translateIfNecessary(JpaAccessor.java:152)
        at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:196)
        at org.springframework.orm.jpa.JpaTemplate.persist(JpaTemplate.java:261)
        at com.adaptivemobile.dao.impl.JpaPortalDao.saveOrUpdate(JpaPortalDao.java:155)
        at com.adaptivemobile.business.group.impl.GroupManagerBean.createGroup(GroupManagerBean.java:149)
        at com.adaptivemobile.business.group.impl.GroupManagerBean$$FastClassByCGLIB$$52c1f178.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
        at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:693)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
        at com.adaptivemobile.business.aop.interceptor.AuditingMethodSecurityInterceptor.invoke(AuditingMethodSecurityInterceptor.java:82)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)
        at com.adaptivemobile.business.group.impl.GroupManagerBean$$EnhancerByCGLIB$$93b0fa7e.createGroup(<generated>)
        at com.adaptivemobile.portal.bp.action.DoCreateGroupAction.doExecute(DoCreateGroupAction.java:67)
        ... 55 more
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not get or update next value
        at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:630)
        at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:219)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:283)
        at $Proxy29.persist(Unknown Source)
        at org.springframework.orm.jpa.JpaTemplate$5.doInJpa(JpaTemplate.java:263)
        at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:191)
        ... 69 more
Caused by: org.hibernate.exception.GenericJDBCException: could not get or update next value
        at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
        at org.hibernate.engine.TransactionHelper$1Work.doWork(TransactionHelper.java:41)
        at org.hibernate.engine.transaction.Isolater$JtaDelegate.delegateWork(Isolater.java:106)
        at org.hibernate.engine.transaction.Isolater.doIsolatedWork(Isolater.java:40)
        at org.hibernate.engine.TransactionHelper.doWorkInNewTransaction(TransactionHelper.java:51)
        at org.hibernate.id.MultipleHiLoPerTableGenerator.generate(MultipleHiLoPerTableGenerator.java:191)
        at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:99)
        at org.hibernate.ejb.event.EJB3PersistEventListener.saveWithGeneratedId(EJB3PersistEventListener.java:49)
        at org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:131)
        at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:87)
        at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:38)
        at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:618)
        at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:592)
        at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:596)
        at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:213)
        ... 77 more
Caused by: java.sql.SQLException: error enlisting a JdbcConnectionHandle of a JdbcPooledConnection from datasource jdbc/amsDS in state ACCESSIBLE wrapping com.mysql.jdbc.jdbc2.optional.MysqlXAConnecti
on@1acf5f7 on com.mysql.jdbc.jdbc2.optional.ConnectionWrapper@d39f3c
        at bitronix.tm.resource.jdbc.JdbcConnectionHandle.enlistResource(JdbcConnectionHandle.java:61)
        at bitronix.tm.resource.jdbc.JdbcConnectionHandle.prepareStatement(JdbcConnectionHandle.java:194)
        at org.hibernate.id.MultipleHiLoPerTableGenerator.doWorkInCurrentTransaction(MultipleHiLoPerTableGenerator.java:133)
        at org.hibernate.engine.TransactionHelper$1Work.doWork(TransactionHelper.java:38)
        ... 90 more
Caused by: bitronix.tm.internal.BitronixSystemException: cannot enlist an XAResourceHolderState with uniqueName=jdbc/amsDS XAResource=com.mysql.jdbc.jdbc2.optional.MysqlXAConnection@1acf5f7 with XID a
 Bitronix XID [6A657474792D62746D2D6E6F6465300000011855FEE48C00000002 : 6A657474792D62746D2D6E6F6465300000011855FEE48C00000004], error=XAER_OUTSIDE
        at bitronix.tm.BitronixTransaction.enlistResource(BitronixTransaction.java:68)
        at bitronix.tm.resource.common.TransactionContextHelper.enlistInCurrentTransaction(TransactionContextHelper.java:51)
        at bitronix.tm.resource.jdbc.JdbcConnectionHandle.enlistResource(JdbcConnectionHandle.java:59)
        ... 93 more
Caused by: com.mysql.jdbc.jdbc2.optional.MysqlXAException: XAER_OUTSIDE: Some work is done outside global transaction
        at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.mapXAExceptionFromSQLException(MysqlXAConnection.java:562)
        at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.dispatchCommand(MysqlXAConnection.java:545)
        at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.start(MysqlXAConnection.java:485)
        at bitronix.tm.internal.XAResourceHolderState.start(XAResourceHolderState.java:147)
        at bitronix.tm.internal.XAResourceManager.enlist(XAResourceManager.java:84)
        at bitronix.tm.BitronixTransaction.enlistResource(BitronixTransaction.java:66)
        ... 95 more
13:46:50,970 ERROR [AMHandlerException] Username: administrator, Timestamp: 1204033610970, action:org.springframework.web.struts.DelegatingActionProxy, form:CreateGroupForm, path:/doCreateGroup
javax.servlet.ServletException: javax.servlet.ServletException: org.springframework.orm.jpa.JpaSystemException: org.hibernate.exception.GenericJDBCException: could not get or update next value; nested
 exception is javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not get or update next value
        at com.adaptivemobile.portal.bp.action.GroupBaseAction.execute(GroupBaseAction.java:75)
        at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:413)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:225)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at com.adaptivemobile.portal.bp.filter.EncodingFilter.doFilter(EncodingFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.adaptivemobile.portal.bp.filter.AuditFilter.doFilter(AuditFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.adaptivemobile.portal.bp.filter.EnvironmentFilter.chainToPage(EnvironmentFilter.java:54)
        at com.adaptivemobile.portal.bp.filter.EnvironmentFilter.doFilter(EnvironmentFilter.java:42)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
        at com.adaptivemobile.portal.bp.security.AuthenticationFilter.doFilter(AuthenticationFilter.java:150)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.concurrent.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:95)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
        at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:313)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
Caused by: javax.servlet.ServletException: org.springframework.orm.jpa.JpaSystemException: org.hibernate.exception.GenericJDBCException: could not get or update next value; nested exception is javax.p
ersistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not get or update next value
        at com.adaptivemobile.portal.bp.action.DoCreateGroupAction.doExecute(DoCreateGroupAction.java:78)
        at com.adaptivemobile.portal.bp.action.GroupBaseAction.execute(GroupBaseAction.java:48)
        ... 54 more
Caused by: org.springframework.orm.jpa.JpaSystemException: org.hibernate.exception.GenericJDBCException: could not get or update next value; nested exception is javax.persistence.PersistenceException:
 org.hibernate.exception.GenericJDBCException: could not get or update next value
        at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:215)
        at org.springframework.orm.jpa.DefaultJpaDialect.translateExceptionIfPossible(DefaultJpaDialect.java:113)
        at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:212)
        at org.springframework.orm.jpa.JpaAccessor.translateIfNecessary(JpaAccessor.java:152)
        at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:196)
        at org.springframework.orm.jpa.JpaTemplate.persist(JpaTemplate.java:261)
        at com.adaptivemobile.dao.impl.JpaPortalDao.saveOrUpdate(JpaPortalDao.java:155)
        at com.adaptivemobile.business.group.impl.GroupManagerBean.createGroup(GroupManagerBean.java:149)
        at com.adaptivemobile.business.group.impl.GroupManagerBean$$FastClassByCGLIB$$52c1f178.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
        at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:693)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
        at com.adaptivemobile.business.aop.interceptor.AuditingMethodSecurityInterceptor.invoke(AuditingMethodSecurityInterceptor.java:82)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)
        at com.adaptivemobile.business.group.impl.GroupManagerBean$$EnhancerByCGLIB$$93b0fa7e.createGroup(<generated>)
        at com.adaptivemobile.portal.bp.action.DoCreateGroupAction.doExecute(DoCreateGroupAction.java:67)
        ... 55 more
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not get or update next value
        at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:630)
        at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:219)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke(ExtendedEntityManagerCreator.java:283)
        at $Proxy29.persist(Unknown Source)
        at org.springframework.orm.jpa.JpaTemplate$5.doInJpa(JpaTemplate.java:263)
        at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:191)
        ... 69 more
Caused by: org.hibernate.exception.GenericJDBCException: could not get or update next value
        at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
        at org.hibernate.engine.TransactionHelper$1Work.doWork(TransactionHelper.java:41)
        at org.hibernate.engine.transaction.Isolater$JtaDelegate.delegateWork(Isolater.java:106)
        at org.hibernate.engine.transaction.Isolater.doIsolatedWork(Isolater.java:40)
        at org.hibernate.engine.TransactionHelper.doWorkInNewTransaction(TransactionHelper.java:51)
        at org.hibernate.id.MultipleHiLoPerTableGenerator.generate(MultipleHiLoPerTableGenerator.java:191)
        at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:99)
        at org.hibernate.ejb.event.EJB3PersistEventListener.saveWithGeneratedId(EJB3PersistEventListener.java:49)
        at org.hibernate.event.def.DefaultPersistEventListener.entityIsTransient(DefaultPersistEventListener.java:131)
        at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:87)
        at org.hibernate.event.def.DefaultPersistEventListener.onPersist(DefaultPersistEventListener.java:38)
        at org.hibernate.impl.SessionImpl.firePersist(SessionImpl.java:618)
        at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:592)
        at org.hibernate.impl.SessionImpl.persist(SessionImpl.java:596)
        at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:213)
        ... 77 more
Caused by: java.sql.SQLException: error enlisting a JdbcConnectionHandle of a JdbcPooledConnection from datasource jdbc/amsDS in state ACCESSIBLE wrapping com.mysql.jdbc.jdbc2.optional.MysqlXAConnecti
on@1acf5f7 on com.mysql.jdbc.jdbc2.optional.ConnectionWrapper@d39f3c
        at bitronix.tm.resource.jdbc.JdbcConnectionHandle.enlistResource(JdbcConnectionHandle.java:61)
        at bitronix.tm.resource.jdbc.JdbcConnectionHandle.prepareStatement(JdbcConnectionHandle.java:194)
        at org.hibernate.id.MultipleHiLoPerTableGenerator.doWorkInCurrentTransaction(MultipleHiLoPerTableGenerator.java:133)
        at org.hibernate.engine.TransactionHelper$1Work.doWork(TransactionHelper.java:38)
        ... 90 more
Caused by: bitronix.tm.internal.BitronixSystemException: cannot enlist an XAResourceHolderState with uniqueName=jdbc/amsDS XAResource=com.mysql.jdbc.jdbc2.optional.MysqlXAConnection@1acf5f7 with XID a
 Bitronix XID [6A657474792D62746D2D6E6F6465300000011855FEE48C00000002 : 6A657474792D62746D2D6E6F6465300000011855FEE48C00000004], error=XAER_OUTSIDE
        at bitronix.tm.BitronixTransaction.enlistResource(BitronixTransaction.java:68)
        at bitronix.tm.resource.common.TransactionContextHelper.enlistInCurrentTransaction(TransactionContextHelper.java:51)
        at bitronix.tm.resource.jdbc.JdbcConnectionHandle.enlistResource(JdbcConnectionHandle.java:59)
        ... 93 more
Caused by: com.mysql.jdbc.jdbc2.optional.MysqlXAException: XAER_OUTSIDE: Some work is done outside global transaction
        at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.mapXAExceptionFromSQLException(MysqlXAConnection.java:562)
        at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.dispatchCommand(MysqlXAConnection.java:545)
        at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.start(MysqlXAConnection.java:485)
        at bitronix.tm.internal.XAResourceHolderState.start(XAResourceHolderState.java:147)
        at bitronix.tm.internal.XAResourceManager.enlist(XAResourceManager.java:84)
        at bitronix.tm.BitronixTransaction.enlistResource(BitronixTransaction.java:66)
        ... 95 more
13:46:51,001 WARN  [PropertyMessageResources]   Resource org/apache/struts/action/LocalStrings_en_IE.properties Not Found.
13:46:51,001 WARN  [PropertyMessageResources]   Resource org/apache/struts/action/LocalStrings_en.properties Not Found.
26-Feb-2008 13:46:51 sun.reflect.NativeMethodAccessorImpl invoke0
WARNING: Error compiling file: D:\WINDOWS\TMP\Jetty_0_0_0_0_8080_pmc.war__pmc__l17qyv\org\apache\jsp\jsp\am\includes\error_jsp.java
26-Feb-2008 13:46:51 sun.reflect.NativeMethodAccessorImpl invoke0
WARNING: Error compiling file: D:\WINDOWS\TMP\Jetty_0_0_0_0_8080_pmc.war__pmc__l17qyv\org\apache\jsp\jsp\am\includes\error_jsp.java
java.lang.NullPointerException
        at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:347)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:400)
        at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:344)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:477)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.servlet.Dispatcher.include(Dispatcher.java:192)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:997)
        at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:671)
        at org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:135)
        at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:149)
        at org.apache.struts.tiles.taglib.InsertTag.doInclude(InsertTag.java:761)
        at org.apache.struts.tiles.taglib.InsertTag$InsertHandler.doEndTag(InsertTag.java:893)
        at org.apache.struts.tiles.taglib.InsertTag.doEndTag(InsertTag.java:462)
        at org.apache.jsp.jsp.am.templates.basic_jsp._jspx_meth_tiles_insert_1(org.apache.jsp.jsp.am.templates.basic_jsp:511)
        at org.apache.jsp.jsp.am.templates.basic_jsp._jspx_meth_html_html_0(org.apache.jsp.jsp.am.templates.basic_jsp:160)
        at org.apache.jsp.jsp.am.templates.basic_jsp._jspService(org.apache.jsp.jsp.am.templates.basic_jsp:68)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:477)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
        at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1054)
        at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:292)
        at org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(TilesRequestProcessor.java:268)
        at org.apache.struts.tiles.TilesRequestProcessor.internalModuleRelativeForward(TilesRequestProcessor.java:367)
        at org.apache.struts.action.RequestProcessor.processForward(RequestProcessor.java:548)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:209)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
        at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1054)
        at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:292)
        at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:384)
        at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:344)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at com.adaptivemobile.portal.bp.filter.EncodingFilter.doFilter(EncodingFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.adaptivemobile.portal.bp.filter.AuditFilter.doFilter(AuditFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.adaptivemobile.portal.bp.filter.EnvironmentFilter.chainToPage(EnvironmentFilter.java:54)
        at com.adaptivemobile.portal.bp.filter.EnvironmentFilter.doFilter(EnvironmentFilter.java:42)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
        at com.adaptivemobile.portal.bp.security.AuthenticationFilter.doFilter(AuthenticationFilter.java:150)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.concurrent.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:95)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
        at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:313)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
13:46:52,001 ERROR [InsertTag] ServletException in '/jsp/am/includes/error.jsp': null
org.apache.jasper.JasperException: PWC6033: Unable to compile class for JSP
        at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:601)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:344)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:477)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.servlet.Dispatcher.include(Dispatcher.java:192)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:997)
        at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:671)
        at org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:135)
        at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:149)
        at org.apache.struts.tiles.taglib.InsertTag.doInclude(InsertTag.java:761)
        at org.apache.struts.tiles.taglib.InsertTag$InsertHandler.doEndTag(InsertTag.java:893)
        at org.apache.struts.tiles.taglib.InsertTag.doEndTag(InsertTag.java:462)
        at org.apache.jsp.jsp.am.templates.basic_jsp._jspx_meth_tiles_insert_1(org.apache.jsp.jsp.am.templates.basic_jsp:511)
        at org.apache.jsp.jsp.am.templates.basic_jsp._jspx_meth_html_html_0(org.apache.jsp.jsp.am.templates.basic_jsp:160)
        at org.apache.jsp.jsp.am.templates.basic_jsp._jspService(org.apache.jsp.jsp.am.templates.basic_jsp:68)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:477)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
        at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1054)
        at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:292)
        at org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(TilesRequestProcessor.java:268)
        at org.apache.struts.tiles.TilesRequestProcessor.internalModuleRelativeForward(TilesRequestProcessor.java:367)
        at org.apache.struts.action.RequestProcessor.processForward(RequestProcessor.java:548)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:209)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
        at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1054)
        at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:292)
        at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:384)
        at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:344)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at com.adaptivemobile.portal.bp.filter.EncodingFilter.doFilter(EncodingFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.adaptivemobile.portal.bp.filter.AuditFilter.doFilter(AuditFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.adaptivemobile.portal.bp.filter.EnvironmentFilter.chainToPage(EnvironmentFilter.java:54)
        at com.adaptivemobile.portal.bp.filter.EnvironmentFilter.doFilter(EnvironmentFilter.java:42)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
        at com.adaptivemobile.portal.bp.security.AuthenticationFilter.doFilter(AuthenticationFilter.java:150)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.concurrent.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:95)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
        at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:313)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
Caused by: java.lang.NullPointerException
        at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:347)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:400)
        at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)
        ... 109 more
13:46:52,017 ERROR [EnvironmentFilter] ENV-FILTER: Exception:
javax.servlet.ServletException: ServletException in '/jsp/am/includes/error.jsp': null
        at org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:919)
        at org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:855)
        at org.apache.jsp.jsp.am.templates.basic_jsp._jspService(org.apache.jsp.jsp.am.templates.basic_jsp:75)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:477)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
        at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1054)
        at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:292)
        at org.apache.struts.tiles.TilesRequestProcessor.processTilesDefinition(TilesRequestProcessor.java:268)
        at org.apache.struts.tiles.TilesRequestProcessor.internalModuleRelativeForward(TilesRequestProcessor.java:367)
        at org.apache.struts.action.RequestProcessor.processForward(RequestProcessor.java:548)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:209)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:268)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
        at org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1054)
        at org.apache.struts.tiles.TilesRequestProcessor.doForward(TilesRequestProcessor.java:292)
        at org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:384)
        at org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:344)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:229)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at com.adaptivemobile.portal.bp.filter.EncodingFilter.doFilter(EncodingFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.adaptivemobile.portal.bp.filter.AuditFilter.doFilter(AuditFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.adaptivemobile.portal.bp.filter.EnvironmentFilter.chainToPage(EnvironmentFilter.java:54)
        at com.adaptivemobile.portal.bp.filter.EnvironmentFilter.doFilter(EnvironmentFilter.java:42)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
        at com.adaptivemobile.portal.bp.security.AuthenticationFilter.doFilter(AuthenticationFilter.java:150)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.concurrent.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:95)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
        at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:313)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
Caused by: org.apache.jasper.JasperException: PWC6033: Unable to compile class for JSP
        at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:601)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:344)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:477)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.servlet.Dispatcher.include(Dispatcher.java:192)
        at org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:997)
        at org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:671)
        at org.apache.struts.tiles.TilesUtilImpl.doInclude(TilesUtilImpl.java:135)
        at org.apache.struts.tiles.TilesUtil.doInclude(TilesUtil.java:149)
        at org.apache.struts.tiles.taglib.InsertTag.doInclude(InsertTag.java:761)
        at org.apache.struts.tiles.taglib.InsertTag$InsertHandler.doEndTag(InsertTag.java:893)
        at org.apache.struts.tiles.taglib.InsertTag.doEndTag(InsertTag.java:462)
        at org.apache.jsp.jsp.am.templates.basic_jsp._jspx_meth_tiles_insert_1(org.apache.jsp.jsp.am.templates.basic_jsp:511)
        at org.apache.jsp.jsp.am.templates.basic_jsp._jspx_meth_html_html_0(org.apache.jsp.jsp.am.templates.basic_jsp:160)
        at org.apache.jsp.jsp.am.templates.basic_jsp._jspService(org.apache.jsp.jsp.am.templates.basic_jsp:68)
        ... 88 more
Caused by: java.lang.NullPointerException
        at org.apache.jasper.compiler.Compiler.generateClass(Compiler.java:347)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:400)
        at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:592)

Thanks in advance for your help!





Which version of Jetty are you using so I can try to reproduce the error here ?

Thanks,
Ludovic

urckle wrote
I have followed the instructions on the respective websites but I get the following error when I attempt to use bitronix on Jetty:


D:\temp\Jetty>java -Xms256m -Xmx512m -jar start.jar etc/jetty.xml etc/jetty-ams.xml
20:21:04,675 INFO  [log] Logging to org.slf4j.impl.Log4jLoggerAdapter(org.mortbay.log) via org.mortbay.log.Slf4jLog
20:21:05,675 INFO  [BitronixTransactionManager] Bitronix Transaction Manager version 1.2
20:21:05,675 INFO  [Configuration] loading default configuration
20:21:05,675 INFO  [Configuration] no configuration file found, using default settings
20:21:05,675 WARN  [Configuration] cannot get this JVM unique ID. Make sure it is configured and you only use ASCII characters. Will use IP address instead (unsafe for production usage!).
20:21:05,691 INFO  [Configuration] JVM unique ID: <10.10.10.122>
20:21:05,863 INFO  [Recoverer] recovery committed 0 dangling transaction(s) and rolled back 0 aborted transaction(s) on resource(s) jdbc/amsDS2, btmXaJmsConnectionFactory
20:21:05,863 WARN  [log] Config error at <New id="tx" class="org.mortbay.jetty.plus.naming.Transaction"><Arg>
                        <Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices"/>
                </Arg></New>
20:21:05,863 WARN  [log] EXCEPTION
java.lang.reflect.InvocationTargetException
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at org.mortbay.xml.XmlConfiguration.newObj(XmlConfiguration.java:597)
        at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:245)
        at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:203)
        at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:937)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.mortbay.start.Main.invokeMain(Main.java:183)
        at org.mortbay.start.Main.start(Main.java:497)
        at org.mortbay.start.Main.main(Main.java:115)
Caused by: java.lang.NullPointerException
        at javax.naming.Reference.toString(Unknown Source)
        at java.lang.String.valueOf(Unknown Source)
        at java.lang.StringBuffer.append(Unknown Source)
        at org.mortbay.naming.NamingContext.addBinding(NamingContext.java:1367)
        at org.mortbay.naming.NamingContext.rebind(NamingContext.java:1000)
        at org.mortbay.naming.NamingContext.rebind(NamingContext.java:1063)
        at org.mortbay.naming.local.localContextRoot.rebind(localContextRoot.java:213)
        at javax.naming.InitialContext.rebind(Unknown Source)
        at org.mortbay.naming.NamingUtil.bind(NamingUtil.java:80)
        at org.mortbay.jetty.plus.naming.NamingEntry.save(NamingEntry.java:511)
        at org.mortbay.jetty.plus.naming.NamingEntry.<init>(NamingEntry.java:360)
        at org.mortbay.jetty.plus.naming.Transaction.<init>(Transaction.java:57)
        ... 15 more
20:21:05,878 ERROR [log] Nested in java.lang.reflect.InvocationTargetException:
java.lang.NullPointerException
        at javax.naming.Reference.toString(Unknown Source)
        at java.lang.String.valueOf(Unknown Source)
        at java.lang.StringBuffer.append(Unknown Source)
        at org.mortbay.naming.NamingContext.addBinding(NamingContext.java:1367)
        at org.mortbay.naming.NamingContext.rebind(NamingContext.java:1000)
        at org.mortbay.naming.NamingContext.rebind(NamingContext.java:1063)
        at org.mortbay.naming.local.localContextRoot.rebind(localContextRoot.java:213)
        at javax.naming.InitialContext.rebind(Unknown Source)
        at org.mortbay.naming.NamingUtil.bind(NamingUtil.java:80)
        at org.mortbay.jetty.plus.naming.NamingEntry.save(NamingEntry.java:511)
        at org.mortbay.jetty.plus.naming.NamingEntry.<init>(NamingEntry.java:360)
        at org.mortbay.jetty.plus.naming.Transaction.<init>(Transaction.java:57)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at org.mortbay.xml.XmlConfiguration.newObj(XmlConfiguration.java:597)
        at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:245)
        at org.mortbay.xml.XmlConfiguration.configure(XmlConfiguration.java:203)
        at org.mortbay.xml.XmlConfiguration.main(XmlConfiguration.java:937)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.mortbay.start.Main.invokeMain(Main.java:183)
        at org.mortbay.start.Main.start(Main.java:497)
        at org.mortbay.start.Main.main(Main.java:115)


Config file is as follows:

        <New id="PMC-Datasource-2" class="org.mortbay.jetty.plus.naming.Resource">
          <Arg>jdbc/amsDS2</Arg>
          <Arg>
                <New class="bitronix.tm.resource.jdbc.PoolingDataSource">
                        <Set name="uniqueName">jdbc/amsDS2</Set>
                        <Set name="className">com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</Set>
                        <Set name="minPoolSize">3</Set>
                        <Set name="maxPoolSize">5</Set>
                        <Get name="driverProperties">
                  <Put name="url">jdbc:mysql://127.0.0.1:3306/YADA?useUnicode=true</Put>
                                <Put name="user">am_portal_user</Put>
                                <Put name="password">password</Put>       
                        </Get>
                        <Call name="init" />
                </New>
          </Arg>
        </New>


       
        <New id="bitronix-connectionFactoryBean" class="org.mortbay.jetty.plus.naming.Resource">
          <Arg>jms/btmXaJmsConnectionFactory</Arg>
          <Arg>
                <New class="bitronix.tm.resource.jms.PoolingConnectionFactory">
                        <Set name="uniqueName">btmXaJmsConnectionFactory</Set>
                        <Set name="className">org.apache.activemq.ActiveMQXAConnectionFactory</Set>
                        <Set name="poolSize">2</Set>
                        <Set name="allowLocalTransactions">true</Set>
                        <Get name="driverProperties">
                  <Put name="brokerURL">tcp://localhost:61616</Put>                                                                                       
                        </Get>
                        <Call name="init" />
                </New>
          </Arg>
        </New>

       
        <Call name="getConfiguration" class="bitronix.tm.TransactionManagerServices">
                <Set name="serverId">jetty-btm-node1</Set>
                <Set name="logPart1Filename"><SystemProperty name="jetty.home" default="." />btm1.tlog</Set>
                <Set name="logPart2Filename"><SystemProperty name="jetty.home" default="." />btm2.tlog</Set>
        </Call>
       
       
       
        <New id="tx" class="org.mortbay.jetty.plus.naming.Transaction">
                <Arg>
                        <Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
                </Arg>
        </New> 


Any suggestions appreciated!
       
Reply | Threaded
Open this post in threaded view
|

Re: Jetty Problem

Ludovic Orban
Administrator
I'm just guessing here but according to your stack trace, you're using MySQL and are trying to do some work inside an XA transaction while you executed some work outside of it without committing or rolling back your changes. This is reflected by the error=XAER_OUTSIDE associated with the XAException thrown by the MySQL driver.

It looks like MySQL does not like mixing global (XA) and local (non-XA) transactions. You should make sure all your work work is committed before calling UserTransaction.begin().

You might find the allowLocalTransactions of the PoolingDataSource useful. When set to false, BTM won't allow any work outside a JTA transaction's boundaries. See http://docs.codehaus.org/display/BTM/JdbcConfiguration for more details.

Let me know if that helped.
Ludovic
Reply | Threaded
Open this post in threaded view
|

Re: Jetty Problem

urckle
I am actually using this setting. It was required before I could get it to work.

I use in Jetty:
<New id="PMC-Datasource" class="org.mortbay.jetty.plus.naming.Resource">
          <Arg>jdbc/amsDS</Arg>
          <Arg>
                <New class="bitronix.tm.resource.jdbc.PoolingDataSource">
                        <Set name="uniqueName">jdbc/amsDS</Set>
                        <Set name="className">com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</Set>
                        <Set name="minPoolSize">0</Set>
                        <Set name="maxPoolSize">5</Set>
                        <Set name="acquireIncrement">1</Set>                       
                        <Set name="allowLocalTransactions">true</Set>                         
                        <Get name="driverProperties">
                  <Put name="url">jdbc:mysql://mymachine/MYDB?useUnicode=true</Put>
                                <Put name="user">user</Put>
                                <Put name="password">password</Put>       
                        </Get>
                        <Call name="init" />
                </New>
          </Arg>
        </New>

I have some READ operations that happen at deploy time that I have indicated in the spring tx settings are READ-ONLY and are not required to be wrapped in a tx. It complained about this until I used the allowLocalTransactions setting. Then I got the error I recently posted. I thought it migh be solved with the acquireIncrement? What exactly is this used for?



Also I tried using the regular MySql Driver and using the LRC strategy. I managed to get it to work for the first few calls in an integration test but eventually got a "JMS handle/session already closed" exception. Could this be related to the size of the ...jms.PoolingConnectionFactory? I have pool size set to 4 but I see the max size is 5?

thanks again.








Ludovic Orban wrote
I'm just guessing here but according to your stack trace, you're using MySQL and are trying to do some work inside an XA transaction while you executed some work outside of it without committing or rolling back your changes. This is reflected by the error=XAER_OUTSIDE associated with the XAException thrown by the MySQL driver.

It looks like MySQL does not like mixing global (XA) and local (non-XA) transactions. You should make sure all your work work is committed before calling UserTransaction.begin().

You might find the allowLocalTransactions of the PoolingDataSource useful. When set to false, BTM won't allow any work outside a JTA transaction's boundaries. See http://docs.codehaus.org/display/BTM/JdbcConfiguration for more details.

Let me know if that helped.
Ludovic
Reply | Threaded
Open this post in threaded view
|

Re: Jetty Problem

Ludovic Orban
Administrator
I've found a related bug in the MySQL bug database: http://bugs.mysql.com/bug.php?id=17734

The interesting bit is at the very bottom: By default, MySQL automatically sets autocommit to 0 when you create a new connection.

You can try the suggested workaround by adding this to your datasource configuration:

<Set name="testQuery">set autocommit=1</Set>

The AcquireIncrement propery controls how many connections are created at once when the connection pool is empty but hasn't reached its maximum size yet. Once again, this is documented here: http://docs.codehaus.org/display/BTM/JdbcConfiguration but the explanation might not be that clear. If that's the case let me know.

The JMS problem you get seems completely unrelated. It should be troubleshooted separately once the JDBC problem is solved.

Ludovic
Reply | Threaded
Open this post in threaded view
|

Re: Jetty Problem

urckle
Thanks Ludovic.

I managed to get the DS deployed and working with the extra property set!! So happy days on that! :-)

I am still having difficulty with the JMS side still though. I understand that this is not being caused by the BTM but I wonder if you have seen this issue while enlisting jms resources into a tx? I am not doing anything out of the ordinary. I simply want to send a message to the jms Queue using a Spring JmsTemplate. I am now trying to get some sort of jms session pool working. I am trying to inject the BTM tx manager into an instance of jencks amqpool (org.jencks.amqpool.XaPooledConnectionFactory) but I see the following:

        ... 67 more
Caused by: javax.jms.JMSException: System Exception
        at org.jencks.amqpool.XaConnectionPool.createSession(XaConnectionPool.java:64)
        at org.jencks.amqpool.PooledConnection.createSession(PooledConnection.java:134)
        at org.springframework.jms.support.JmsAccessor.createSession(JmsAccessor.java:200)
        at org.springframework.jms.core.JmsTemplate.access$500(JmsTemplate.java:76)
        at org.springframework.jms.core.JmsTemplate$JmsTemplateResourceFactory.createSession(JmsTemplate.java:875)
        at org.springframework.jms.connection.ConnectionFactoryUtils.doGetTransactionalSession(ConnectionFactoryUtils.java:237)
        at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:415)
        ... 90 more
Caused by: bitronix.tm.internal.BitronixSystemException: unknown XAResource org.apache.activemq.TransactionContext@12dbd1a, it does not belong to a registered resource
        at bitronix.tm.BitronixTransaction.enlistResource(BitronixTransaction.java:62)
        at org.jencks.amqpool.XaConnectionPool.createSession(XaConnectionPool.java:56)
        ... 96 more


Have you had to use a session pool along side the BTM before?

thanks
Andre





Ludovic Orban wrote
I've found a related bug in the MySQL bug database: http://bugs.mysql.com/bug.php?id=17734

The interesting bit is at the very bottom: By default, MySQL automatically sets autocommit to 0 when you create a new connection.

You can try the suggested workaround by adding this to your datasource configuration:

<Set name="testQuery">set autocommit=1</Set>

The AcquireIncrement propery controls how many connections are created at once when the connection pool is empty but hasn't reached its maximum size yet. Once again, this is documented here: http://docs.codehaus.org/display/BTM/JdbcConfiguration but the explanation might not be that clear. If that's the case let me know.

The JMS problem you get seems completely unrelated. It should be troubleshooted separately once the JDBC problem is solved.

Ludovic
Reply | Threaded
Open this post in threaded view
|

Re: Jetty Problem

Ludovic Orban
Administrator
Andre,

BTM comes bundled with a JMS pool itself. Not only there is no need for an extra one but it's not possible to use any other for various reasons. That's what the BitronixSystemException: unknown XAResource org.apache.activemq.TransactionContext@12dbd1a, it does not belong to a registered resource error is about.

You should drop the jencks pool and use the BTM PoolingConnectionFactory instead. If you have troubles with it just post your config and I'll try to pinpoint the problem.

Ludovic
Reply | Threaded
Open this post in threaded view
|

Re: Jetty Problem

urckle
Hi Ludovic,
thanks for getting back! Your help is very much appreciated!

I was using the BTM jms PoolingConnectionFactory but I was seeing the "session already closed error" message. That is why I was playing around with the jencks pool. Perhaps I am missing something from my jms template setup.

Here is my setup for the jms:

Jetty xml:
 
<New id="PMC-Datasource" class="org.mortbay.jetty.plus.naming.Resource">
  <Arg>jdbc/amsDS</Arg>
  <Arg>
        <New class="bitronix.tm.resource.jdbc.PoolingDataSource">
                <Set name="uniqueName">jdbc/amsDS</Set>
                <Set name="className">com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</Set>
                <Set name="minPoolSize">1</Set>
                <Set name="maxPoolSize">5</Set>
                <Set name="testQuery">set autocommit=1</Set>
                <Set name="acquireIncrement">1</Set>
                <Set name="useTmJoin">true</Set>
                <Set name="deferConnectionRelease">true</Set>
                <Set name="automaticEnlistingEnabled">true</Set>
                <Set name="allowLocalTransactions">true</Set>                         
                <Get name="driverProperties">
                        <Put name="url">jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true</Put>
                        <Put name="user">user</Put>
                        <Put name="password">password</Put>       
                </Get>
                <Call name="init" />
        </New>
  </Arg>
</New>



<New id="bitronix-connectionFactoryBean" class="org.mortbay.jetty.plus.naming.Resource">
  <Arg>jms/btmXaJmsConnectionFactory</Arg>
  <Arg>
        <New class="bitronix.tm.resource.jms.PoolingConnectionFactory">
                <Set name="uniqueName">btmXaJmsConnectionFactory</Set>
                <Set name="className">org.apache.activemq.ActiveMQXAConnectionFactory</Set>
                <Set name="poolSize">4</Set>
                <Set name="allowLocalTransactions">true</Set>
                <Get name="driverProperties">
                        <Put name="brokerURL">tcp://localhost:61616</Put>                                                                                       
                </Get>
                <Call name="init" />
        </New>
  </Arg>
</New> 
       

               

<Call name="getConfiguration" class="bitronix.tm.TransactionManagerServices">
        <Set name="serverId">jetty-btm-node0</Set>
        <Set name="logPart1Filename"><SystemProperty name="jetty.home" default="." />/btm1.tlog</Set>
        <Set name="logPart2Filename"><SystemProperty name="jetty.home" default="." />/btm2.tlog</Set>
</Call>
<New class="org.mortbay.jetty.plus.naming.Transaction">
        <Arg>
                <Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
        </Arg>
</New>


Here is my spring ctx stuff:

<jee:jndi-lookup id="AMQ-destination" jndi-name="test.q1" />
<jee:jndi-lookup id="bitronix-connectionFactory" jndi-name="jms/btmXaJmsConnectionFactory" />
       
<bean id="AMQ-jmsTemplate" class="org.springframework.jms.core.JmsTemplate">

  <property name="receiveTimeout">
     <value>30000</value>
  </property>
  <property name="deliveryMode" value="2"/>               
  <property name="connectionFactory" ref="bitronix-connectionFactory" />       
  <property name="defaultDestination" ref="AMQ-destination" />
  <property name="messageTimestampEnabled" value="false" />
  <property name="messageIdEnabled" value="false" />               
  <property name="sessionTransacted" value="true" />

</bean>


For the DAO part of my app coontext:
<jee:jndi-lookup id="btm-transactionManager" jndi-name="java:comp/UserTransaction" />
         
<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">       
    <property name="userTransaction" ref="btm-transactionManager"/>                 
</bean>

<tx:advice id="txAdviceForBusiness" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="retrieve*" read-only="true" propagation="SUPPORTS"/>
            ....etc............
        </tx:attributes>
</tx:advice>



Here is the exception stack trace:
Hibernate: insert into FILTERSCHEDULE (endDate, FILTERTIMEPLAN_ID, startDate, utcOffset, id) values (?, ?, ?, ?, ?)
Wed Feb 27 13:21:34 GMT 2008 DEBUG: Executing XA statement: XA START 0x6a657474792d62746d2d6e6f646530000001185b0e1e090000003b,0x6a657474792d62746d2d6e6f646530000001185b0e1e380000003d,0x42746e78
27-Feb-2008 13:21:34 bitronix.tm.BitronixTransaction fireBeforeCompletionEvent
WARNING: Synchronization.beforeCompletion() call failed for org.hibernate.ejb.AbstractEntityManagerImpl$1@10f9a46, marking transaction as rollback only
javax.persistence.PersistenceException:
org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing;
nested exception is javax.jms.JMSException: session handle is closed
        at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:528)
        at bitronix.tm.BitronixTransaction.fireBeforeCompletionEvent(BitronixTransaction.java:288)
        at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:116)
        at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:90)
        at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:842)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:651)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:621)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:311)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)
        at com.company.business.filter.impl.FilterManagerBean$$EnhancerByCGLIB$$60a020b8.saveOrUpdate(<generated>)
        at com.company.portal.bp.action.DoCreateFilterAction.doExecute(DoCreateFilterAction.java:71)
        at com.company.portal.bp.action.GroupBaseAction.execute(GroupBaseAction.java:48)
        at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:413)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:225)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at com.company.portal.bp.filter.EncodingFilter.doFilter(EncodingFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.company.portal.bp.filter.AuditFilter.doFilter(AuditFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.company.portal.bp.filter.EnvironmentFilter.chainToPage(EnvironmentFilter.java:54)
        at com.company.portal.bp.filter.EnvironmentFilter.doFilter(EnvironmentFilter.java:42)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
        at com.company.portal.bp.security.AuthenticationFilter.doFilter(AuthenticationFilter.java:150)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.concurrent.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:95)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
        at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:313)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
Caused by: org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is javax.jms.JMSException: session handle is closed
        at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:260)
        at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:172)
        at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:431)
        at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:475)
        at org.springframework.jms.core.JmsTemplate.convertAndSend(JmsTemplate.java:556)
        at com.company.business.event.EventProcessor.sendMessageToDestination(EventProcessor.java:162)
        at com.company.business.event.EventProcessor.processPersistEvent(EventProcessor.java:69)
        at com.company.business.event.PMCEventListener.doPostPersist(PMCEventListener.java:81)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.hibernate.ejb.event.ListenerCallback.invoke(ListenerCallback.java:31)
        at org.hibernate.ejb.event.EntityCallbackHandler.callback(EntityCallbackHandler.java:78)
        at org.hibernate.ejb.event.EntityCallbackHandler.postCreate(EntityCallbackHandler.java:51)
        at org.hibernate.ejb.event.EJB3PostInsertEventListener.onPostInsert(EJB3PostInsertEventListener.java:33)
        at org.hibernate.action.EntityInsertAction.postInsert(EntityInsertAction.java:127)
        at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:106)
        at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
        at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
        at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
        at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
        at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
        at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:516)
        ... 67 more
Caused by: javax.jms.JMSException: session handle is closed
        at bitronix.tm.resource.jms.DualSessionWrapper.getSession(DualSessionWrapper.java:60)
        at bitronix.tm.resource.jms.DualSessionWrapper.getSession(DualSessionWrapper.java:55)
        at bitronix.tm.resource.jms.DualSessionWrapper.createProducer(DualSessionWrapper.java:206)
        at org.springframework.jms.core.JmsTemplate.doCreateProducer(JmsTemplate.java:830)
        at org.springframework.jms.core.JmsTemplate.createProducer(JmsTemplate.java:811)
        at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:505)
        at org.springframework.jms.core.JmsTemplate$2.doInJms(JmsTemplate.java:477)
        at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:428)
        ... 90 more
Wed Feb 27 13:21:34 GMT 2008 DEBUG: Executing XA statement: XA END 0x6a657474792d62746d2d6e6f646530000001185b0e1e090000003b,0x6a657474792d62746d2d6e6f646530000001185b0e1e380000003d,0x42746e78
Wed Feb 27 13:21:34 GMT 2008 DEBUG: Executing XA statement: XA ROLLBACK 0x6a657474792d62746d2d6e6f646530000001185b0e1e090000003b,0x6a657474792d62746d2d6e6f646530000001185b0e1e380000003d,0x42746e78
13:21:34,979 ERROR [DoCreateFilterAction] Error:
org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is bitronix.tm.internal.BitronixRollbackException: tran
saction was marked as rollback only and has been rolled back
Caused by:
bitronix.tm.internal.BitronixRollbackException: transaction was marked as rollback only and has been rolled back
        at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:120)
        at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:90)
        at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:842)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:651)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:621)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:311)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)
        at com.company.business.filter.impl.FilterManagerBean$$EnhancerByCGLIB$$60a020b8.saveOrUpdate(<generated>)
        at com.company.portal.bp.action.DoCreateFilterAction.doExecute(DoCreateFilterAction.java:71)
        at com.company.portal.bp.action.GroupBaseAction.execute(GroupBaseAction.java:48)
        at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:413)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:225)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at com.company.portal.bp.filter.EncodingFilter.doFilter(EncodingFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.company.portal.bp.filter.AuditFilter.doFilter(AuditFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.company.portal.bp.filter.EnvironmentFilter.chainToPage(EnvironmentFilter.java:54)
        at com.company.portal.bp.filter.EnvironmentFilter.doFilter(EnvironmentFilter.java:42)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
        at com.company.portal.bp.security.AuthenticationFilter.doFilter(AuthenticationFilter.java:150)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.concurrent.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:95)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
        at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:313)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
13:21:35,089 ERROR [GroupBaseAction] Error:
javax.servlet.ServletException: org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is bitronix.tm.internal
.BitronixRollbackException: transaction was marked as rollback only and has been rolled back
        at com.company.portal.bp.action.DoCreateFilterAction.doExecute(DoCreateFilterAction.java:91)
        at com.company.portal.bp.action.GroupBaseAction.execute(GroupBaseAction.java:48)
        at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:413)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:225)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at com.company.portal.bp.filter.EncodingFilter.doFilter(EncodingFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.company.portal.bp.filter.AuditFilter.doFilter(AuditFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.company.portal.bp.filter.EnvironmentFilter.chainToPage(EnvironmentFilter.java:54)
        at com.company.portal.bp.filter.EnvironmentFilter.doFilter(EnvironmentFilter.java:42)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
        at com.company.portal.bp.security.AuthenticationFilter.doFilter(AuthenticationFilter.java:150)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.concurrent.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:95)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
        at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:313)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
Caused by: org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is bitronix.tm.internal.BitronixRollbackExce
ption: transaction was marked as rollback only and has been rolled back
        at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:845)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:651)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:621)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:311)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)
        at com.company.business.filter.impl.FilterManagerBean$$EnhancerByCGLIB$$60a020b8.saveOrUpdate(<generated>)
        at com.company.portal.bp.action.DoCreateFilterAction.doExecute(DoCreateFilterAction.java:71)
        ... 55 more
Caused by: bitronix.tm.internal.BitronixRollbackException: transaction was marked as rollback only and has been rolled back
        at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:120)
        at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:90)
        at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:842)
        ... 63 more
13:21:35,214 ERROR [AMHandlerException] Username: administrator, Timestamp: 1204118495214, action:org.springframework.web.struts.DelegatingActionProxy, form:FilterFormBean, path:/doCreateFilterStep2
javax.servlet.ServletException: javax.servlet.ServletException: org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested e
xception is bitronix.tm.internal.BitronixRollbackException: transaction was marked as rollback only and has been rolled back
        at com.company.portal.bp.action.GroupBaseAction.execute(GroupBaseAction.java:75)
        at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:413)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:225)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at com.company.portal.bp.filter.EncodingFilter.doFilter(EncodingFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.company.portal.bp.filter.AuditFilter.doFilter(AuditFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.company.portal.bp.filter.EnvironmentFilter.chainToPage(EnvironmentFilter.java:54)
        at com.company.portal.bp.filter.EnvironmentFilter.doFilter(EnvironmentFilter.java:42)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
        at com.company.portal.bp.security.AuthenticationFilter.doFilter(AuthenticationFilter.java:150)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.concurrent.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:95)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
        at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:313)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
Caused by: javax.servlet.ServletException: org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is bitronix.
tm.internal.BitronixRollbackException: transaction was marked as rollback only and has been rolled back
        at com.company.portal.bp.action.DoCreateFilterAction.doExecute(DoCreateFilterAction.java:91)
        at com.company.portal.bp.action.GroupBaseAction.execute(GroupBaseAction.java:48)
        ... 54 more
Caused by: org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is bitronix.tm.internal.BitronixRollbackExce
ption: transaction was marked as rollback only and has been rolled back
        at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:845)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:651)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:621)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:311)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)
        at com.company.business.filter.impl.FilterManagerBean$$EnhancerByCGLIB$$60a020b8.saveOrUpdate(<generated>)
        at com.company.portal.bp.action.DoCreateFilterAction.doExecute(DoCreateFilterAction.java:71)
        ... 55 more
Caused by: bitronix.tm.internal.BitronixRollbackException: transaction was marked as rollback only and has been rolled back
        at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:120)
        at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:90)
        at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:842)
        ... 63 more

Ludovic Orban wrote
Andre,

BTM comes bundled with a JMS pool itself. Not only there is no need for an extra one but it's not possible to use any other for various reasons. That's what the BitronixSystemException: unknown XAResource org.apache.activemq.TransactionContext@12dbd1a, it does not belong to a registered resource error is about.

You should drop the jencks pool and use the BTM PoolingConnectionFactory instead. If you have troubles with it just post your config and I'll try to pinpoint the problem.

Ludovic
Reply | Threaded
Open this post in threaded view
|

Re: Jetty Problem

urckle
Hi again,
 further to my last message I just noticed the following:
If I set the setTransacted property on the spring JMS template to FALSE I have more success!

Eventually I get the following error though:

        ... 67 more
Caused by: javax.jms.JMSException: unable to get a connection from pool of a PoolingConnectionFactory containing an XAPool of resource btmXaJmsConnectionFactory with 4 connection(s) (0 still available
)
        at bitronix.tm.resource.jms.PoolingConnectionFactory.createConnection(PoolingConnectionFactory.java:147)
        at org.springframework.jms.support.JmsAccessor.createConnection(JmsAccessor.java:188)
        at org.springframework.jms.core.JmsTemplate.access$400(JmsTemplate.java:76)
        at org.springframework.jms.core.JmsTemplate$JmsTemplateResourceFactory.createConnection(JmsTemplate.java:871)
        at org.springframework.jms.connection.ConnectionFactoryUtils.doGetTransactionalSession(ConnectionFactoryUtils.java:234)
        at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:415)
        ... 90 more
Caused by: java.lang.Exception: XA pool of resource btmXaJmsConnectionFactory still empty after 30s wait time
        at bitronix.tm.resource.common.XAPool.waitForConnectionInPool(XAPool.java:333)
        at bitronix.tm.resource.common.XAPool.getInPool(XAPool.java:289)
        at bitronix.tm.resource.common.XAPool.getConnectionHandle(XAPool.java:69)
        at bitronix.tm.resource.common.XAPool.getConnectionHandle(XAPool.java:55)
        at bitronix.tm.resource.jms.PoolingConnectionFactory.createConnection(PoolingConnectionFactory.java:145)
        ... 95 more
Wed Feb 27 14:09:27 GMT 2008 DEBUG: Executing XA statement: XA END 0x6a657474792d62746d2d6e6f646530000001185b397c760000008a,0x6a657474792d62746d2d6e6f646530000001185b397c860000008c,0x42746e78
Wed Feb 27 14:09:27 GMT 2008 DEBUG: Executing XA statement: XA ROLLBACK 0x6a657474792d62746d2d6e6f646530000001185b397c760000008a,0x6a657474792d62746d2d6e6f646530000001185b397c860000008c,0x42746e78

So looks like the jms sessions are not put back into the pool ???






urckle wrote
Hi Ludovic,
thanks for getting back! Your help is very much appreciated!

I was using the BTM jms PoolingConnectionFactory but I was seeing the "session already closed error" message. That is why I was playing around with the jencks pool. Perhaps I am missing something from my jms template setup.

Here is my setup for the jms:

Jetty xml:
 
<New id="PMC-Datasource" class="org.mortbay.jetty.plus.naming.Resource">
  <Arg>jdbc/amsDS</Arg>
  <Arg>
        <New class="bitronix.tm.resource.jdbc.PoolingDataSource">
                <Set name="uniqueName">jdbc/amsDS</Set>
                <Set name="className">com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</Set>
                <Set name="minPoolSize">1</Set>
                <Set name="maxPoolSize">5</Set>
                <Set name="testQuery">set autocommit=1</Set>
                <Set name="acquireIncrement">1</Set>
                <Set name="useTmJoin">true</Set>
                <Set name="deferConnectionRelease">true</Set>
                <Set name="automaticEnlistingEnabled">true</Set>
                <Set name="allowLocalTransactions">true</Set>                         
                <Get name="driverProperties">
                        <Put name="url">jdbc:mysql://127.0.0.1:3306/mydb?useUnicode=true</Put>
                        <Put name="user">user</Put>
                        <Put name="password">password</Put>       
                </Get>
                <Call name="init" />
        </New>
  </Arg>
</New>



<New id="bitronix-connectionFactoryBean" class="org.mortbay.jetty.plus.naming.Resource">
  <Arg>jms/btmXaJmsConnectionFactory</Arg>
  <Arg>
        <New class="bitronix.tm.resource.jms.PoolingConnectionFactory">
                <Set name="uniqueName">btmXaJmsConnectionFactory</Set>
                <Set name="className">org.apache.activemq.ActiveMQXAConnectionFactory</Set>
                <Set name="poolSize">4</Set>
                <Set name="allowLocalTransactions">true</Set>
                <Get name="driverProperties">
                        <Put name="brokerURL">tcp://localhost:61616</Put>                                                                                       
                </Get>
                <Call name="init" />
        </New>
  </Arg>
</New> 
       

               

<Call name="getConfiguration" class="bitronix.tm.TransactionManagerServices">
        <Set name="serverId">jetty-btm-node0</Set>
        <Set name="logPart1Filename"><SystemProperty name="jetty.home" default="." />/btm1.tlog</Set>
        <Set name="logPart2Filename"><SystemProperty name="jetty.home" default="." />/btm2.tlog</Set>
</Call>
<New class="org.mortbay.jetty.plus.naming.Transaction">
        <Arg>
                <Call name="getTransactionManager" class="bitronix.tm.TransactionManagerServices" />
        </Arg>
</New>


Here is my spring ctx stuff:

<jee:jndi-lookup id="AMQ-destination" jndi-name="test.q1" />
<jee:jndi-lookup id="bitronix-connectionFactory" jndi-name="jms/btmXaJmsConnectionFactory" />
       
<bean id="AMQ-jmsTemplate" class="org.springframework.jms.core.JmsTemplate">

  <property name="receiveTimeout">
     <value>30000</value>
  </property>
  <property name="deliveryMode" value="2"/>               
  <property name="connectionFactory" ref="bitronix-connectionFactory" />       
  <property name="defaultDestination" ref="AMQ-destination" />
  <property name="messageTimestampEnabled" value="false" />
  <property name="messageIdEnabled" value="false" />               
  <property name="sessionTransacted" value="true" />

</bean>


For the DAO part of my app coontext:
<jee:jndi-lookup id="btm-transactionManager" jndi-name="java:comp/UserTransaction" />
         
<bean id="transactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">       
    <property name="userTransaction" ref="btm-transactionManager"/>                 
</bean>

<tx:advice id="txAdviceForBusiness" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="retrieve*" read-only="true" propagation="SUPPORTS"/>
            ....etc............
        </tx:attributes>
</tx:advice>



Here is the exception stack trace:
Hibernate: insert into FILTERSCHEDULE (endDate, FILTERTIMEPLAN_ID, startDate, utcOffset, id) values (?, ?, ?, ?, ?)
Wed Feb 27 13:21:34 GMT 2008 DEBUG: Executing XA statement: XA START 0x6a657474792d62746d2d6e6f646530000001185b0e1e090000003b,0x6a657474792d62746d2d6e6f646530000001185b0e1e380000003d,0x42746e78
27-Feb-2008 13:21:34 bitronix.tm.BitronixTransaction fireBeforeCompletionEvent
WARNING: Synchronization.beforeCompletion() call failed for org.hibernate.ejb.AbstractEntityManagerImpl$1@10f9a46, marking transaction as rollback only
javax.persistence.PersistenceException:
org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing;
nested exception is javax.jms.JMSException: session handle is closed
        at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:528)
        at bitronix.tm.BitronixTransaction.fireBeforeCompletionEvent(BitronixTransaction.java:288)
        at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:116)
        at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:90)
        at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:842)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:651)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:621)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:311)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)
        at com.company.business.filter.impl.FilterManagerBean$$EnhancerByCGLIB$$60a020b8.saveOrUpdate(<generated>)
        at com.company.portal.bp.action.DoCreateFilterAction.doExecute(DoCreateFilterAction.java:71)
        at com.company.portal.bp.action.GroupBaseAction.execute(GroupBaseAction.java:48)
        at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:413)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:225)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at com.company.portal.bp.filter.EncodingFilter.doFilter(EncodingFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.company.portal.bp.filter.AuditFilter.doFilter(AuditFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.company.portal.bp.filter.EnvironmentFilter.chainToPage(EnvironmentFilter.java:54)
        at com.company.portal.bp.filter.EnvironmentFilter.doFilter(EnvironmentFilter.java:42)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
        at com.company.portal.bp.security.AuthenticationFilter.doFilter(AuthenticationFilter.java:150)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.concurrent.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:95)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
        at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:313)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
Caused by: org.springframework.jms.UncategorizedJmsException: Uncategorized exception occured during JMS processing; nested exception is javax.jms.JMSException: session handle is closed
        at org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:260)
        at org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:172)
        at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:431)
        at org.springframework.jms.core.JmsTemplate.send(JmsTemplate.java:475)
        at org.springframework.jms.core.JmsTemplate.convertAndSend(JmsTemplate.java:556)
        at com.company.business.event.EventProcessor.sendMessageToDestination(EventProcessor.java:162)
        at com.company.business.event.EventProcessor.processPersistEvent(EventProcessor.java:69)
        at com.company.business.event.PMCEventListener.doPostPersist(PMCEventListener.java:81)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at org.hibernate.ejb.event.ListenerCallback.invoke(ListenerCallback.java:31)
        at org.hibernate.ejb.event.EntityCallbackHandler.callback(EntityCallbackHandler.java:78)
        at org.hibernate.ejb.event.EntityCallbackHandler.postCreate(EntityCallbackHandler.java:51)
        at org.hibernate.ejb.event.EJB3PostInsertEventListener.onPostInsert(EJB3PostInsertEventListener.java:33)
        at org.hibernate.action.EntityInsertAction.postInsert(EntityInsertAction.java:127)
        at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:106)
        at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:250)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:234)
        at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
        at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
        at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
        at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
        at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
        at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:516)
        ... 67 more
Caused by: javax.jms.JMSException: session handle is closed
        at bitronix.tm.resource.jms.DualSessionWrapper.getSession(DualSessionWrapper.java:60)
        at bitronix.tm.resource.jms.DualSessionWrapper.getSession(DualSessionWrapper.java:55)
        at bitronix.tm.resource.jms.DualSessionWrapper.createProducer(DualSessionWrapper.java:206)
        at org.springframework.jms.core.JmsTemplate.doCreateProducer(JmsTemplate.java:830)
        at org.springframework.jms.core.JmsTemplate.createProducer(JmsTemplate.java:811)
        at org.springframework.jms.core.JmsTemplate.doSend(JmsTemplate.java:505)
        at org.springframework.jms.core.JmsTemplate$2.doInJms(JmsTemplate.java:477)
        at org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:428)
        ... 90 more
Wed Feb 27 13:21:34 GMT 2008 DEBUG: Executing XA statement: XA END 0x6a657474792d62746d2d6e6f646530000001185b0e1e090000003b,0x6a657474792d62746d2d6e6f646530000001185b0e1e380000003d,0x42746e78
Wed Feb 27 13:21:34 GMT 2008 DEBUG: Executing XA statement: XA ROLLBACK 0x6a657474792d62746d2d6e6f646530000001185b0e1e090000003b,0x6a657474792d62746d2d6e6f646530000001185b0e1e380000003d,0x42746e78
13:21:34,979 ERROR [DoCreateFilterAction] Error:
org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is bitronix.tm.internal.BitronixRollbackException: tran
saction was marked as rollback only and has been rolled back
Caused by:
bitronix.tm.internal.BitronixRollbackException: transaction was marked as rollback only and has been rolled back
        at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:120)
        at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:90)
        at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:842)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:651)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:621)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:311)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)
        at com.company.business.filter.impl.FilterManagerBean$$EnhancerByCGLIB$$60a020b8.saveOrUpdate(<generated>)
        at com.company.portal.bp.action.DoCreateFilterAction.doExecute(DoCreateFilterAction.java:71)
        at com.company.portal.bp.action.GroupBaseAction.execute(GroupBaseAction.java:48)
        at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:413)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:225)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at com.company.portal.bp.filter.EncodingFilter.doFilter(EncodingFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.company.portal.bp.filter.AuditFilter.doFilter(AuditFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.company.portal.bp.filter.EnvironmentFilter.chainToPage(EnvironmentFilter.java:54)
        at com.company.portal.bp.filter.EnvironmentFilter.doFilter(EnvironmentFilter.java:42)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
        at com.company.portal.bp.security.AuthenticationFilter.doFilter(AuthenticationFilter.java:150)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.concurrent.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:95)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
        at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:313)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
13:21:35,089 ERROR [GroupBaseAction] Error:
javax.servlet.ServletException: org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is bitronix.tm.internal
.BitronixRollbackException: transaction was marked as rollback only and has been rolled back
        at com.company.portal.bp.action.DoCreateFilterAction.doExecute(DoCreateFilterAction.java:91)
        at com.company.portal.bp.action.GroupBaseAction.execute(GroupBaseAction.java:48)
        at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:413)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:225)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at com.company.portal.bp.filter.EncodingFilter.doFilter(EncodingFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.company.portal.bp.filter.AuditFilter.doFilter(AuditFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.company.portal.bp.filter.EnvironmentFilter.chainToPage(EnvironmentFilter.java:54)
        at com.company.portal.bp.filter.EnvironmentFilter.doFilter(EnvironmentFilter.java:42)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
        at com.company.portal.bp.security.AuthenticationFilter.doFilter(AuthenticationFilter.java:150)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.concurrent.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:95)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
        at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:313)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
Caused by: org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is bitronix.tm.internal.BitronixRollbackExce
ption: transaction was marked as rollback only and has been rolled back
        at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:845)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:651)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:621)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:311)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)
        at com.company.business.filter.impl.FilterManagerBean$$EnhancerByCGLIB$$60a020b8.saveOrUpdate(<generated>)
        at com.company.portal.bp.action.DoCreateFilterAction.doExecute(DoCreateFilterAction.java:71)
        ... 55 more
Caused by: bitronix.tm.internal.BitronixRollbackException: transaction was marked as rollback only and has been rolled back
        at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:120)
        at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:90)
        at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:842)
        ... 63 more
13:21:35,214 ERROR [AMHandlerException] Username: administrator, Timestamp: 1204118495214, action:org.springframework.web.struts.DelegatingActionProxy, form:FilterFormBean, path:/doCreateFilterStep2
javax.servlet.ServletException: javax.servlet.ServletException: org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested e
xception is bitronix.tm.internal.BitronixRollbackException: transaction was marked as rollback only and has been rolled back
        at com.company.portal.bp.action.GroupBaseAction.execute(GroupBaseAction.java:75)
        at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:413)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:225)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at com.company.portal.bp.filter.EncodingFilter.doFilter(EncodingFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.company.portal.bp.filter.AuditFilter.doFilter(AuditFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.company.portal.bp.filter.EnvironmentFilter.chainToPage(EnvironmentFilter.java:54)
        at com.company.portal.bp.filter.EnvironmentFilter.doFilter(EnvironmentFilter.java:42)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
        at com.company.portal.bp.security.AuthenticationFilter.doFilter(AuthenticationFilter.java:150)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.concurrent.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:95)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
        at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:313)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
Caused by: javax.servlet.ServletException: org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is bitronix.
tm.internal.BitronixRollbackException: transaction was marked as rollback only and has been rolled back
        at com.company.portal.bp.action.DoCreateFilterAction.doExecute(DoCreateFilterAction.java:91)
        at com.company.portal.bp.action.GroupBaseAction.execute(GroupBaseAction.java:48)
        ... 54 more
Caused by: org.springframework.transaction.UnexpectedRollbackException: JTA transaction unexpectedly rolled back (maybe due to a timeout); nested exception is bitronix.tm.internal.BitronixRollbackExce
ption: transaction was marked as rollback only and has been rolled back
        at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:845)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:651)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:621)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:311)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:117)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)
        at com.company.business.filter.impl.FilterManagerBean$$EnhancerByCGLIB$$60a020b8.saveOrUpdate(<generated>)
        at com.company.portal.bp.action.DoCreateFilterAction.doExecute(DoCreateFilterAction.java:71)
        ... 55 more
Caused by: bitronix.tm.internal.BitronixRollbackException: transaction was marked as rollback only and has been rolled back
        at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:120)
        at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:90)
        at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:842)
        ... 63 more

Ludovic Orban wrote
Andre,

BTM comes bundled with a JMS pool itself. Not only there is no need for an extra one but it's not possible to use any other for various reasons. That's what the BitronixSystemException: unknown XAResource org.apache.activemq.TransactionContext@12dbd1a, it does not belong to a registered resource error is about.

You should drop the jencks pool and use the BTM PoolingConnectionFactory instead. If you have troubles with it just post your config and I'll try to pinpoint the problem.

Ludovic
Reply | Threaded
Open this post in threaded view
|

Re: Jetty Problem

Ludovic Orban
Administrator
Both cases look strange.

I do have a test application using BTM and a JmsTemplate and I've never encountered that 'session handle is closed' error nor the pool depletion one. I've tested it again with the sessionTransacted set to false then true and got the same result: it just works.

I'm trying to make sense of what you're trying to achieve with your setup and how you've plugged everything together. Could you please give me more details about that ? You must have done something wrong in your Spring config, maybe in the way you've plugged beans together or the way you use them.

Ludovic
Reply | Threaded
Open this post in threaded view
|

Re: Jetty Problem

urckle
Hi Ludovic,
yes I agree, I must have set something up in a strange manner.

I have a simple enough scenario. Spring with JPA. I have  my entity objects set up with jpa eventlisteners so that certain events, like CREATE, send a jms message to an ActiveMQ 4.1.1 queue. This info is sent to a non java application that uses the info in a high speed, in memory, non-java database. So basically DB CRD operations get replicated. Simple enough!

I am attempting to wrap 1) the DB operation and 2) the jms message sending into the same tx. By default the JPA event listener setup appears to instantiate many instances at startup (about 30 it looks like.) As I am not in control of creating these instances I have to load up the application Context. And as I don't want a new one per instance of the eventListener I use the Spring provided ContextSingletonBeanFactoryLocator.getInstance() method to load up my appContext. It is in this app context file that my jms config sits. It simply grabs the BTM jms PoolingConnectionFactory from JNDI and injects it to the JmsTemplate. Then when the appropriate eventListener callback is invoked, say postPersist(), my message producing code creates a new message and fires it to the queue.

I am wondering if this method of initiating the context is causing problems?!? I have been replacing various pieces of the puzzle and it always seems to come back to the jms session - either session closed, the timeout / hang after a number of attemps, and now onActiveMQ 5.0.0:

Wed Feb 27 15:48:22 GMT 2008 DEBUG: Executing XA statement: XA START 0x6a657474792d62746d2d6e6f646530000001185b94852800000054,0x6a657474792d62746d2d6e6f646530000001185b94853800000056,0x42746e78
27-Feb-2008 15:48:22 bitronix.tm.BitronixTransaction fireBeforeCompletionEvent
WARNING: Synchronization.beforeCompletion() call failed for
org.hibernate.ejb.AbstractEntityManagerImpl$1@5f8ddb, marking transaction as rollback only
javax.persistence.PersistenceException: org.springframework.jms.IllegalStateException: The producer is closed; nested exception is javax.jms.IllegalStateException: The producer is closed
        at org.hibernate.ejb.AbstractEntityManagerImpl$1.beforeCompletion(AbstractEntityManagerImpl.java:528)
        at bitronix.tm.BitronixTransaction.fireBeforeCompletionEvent(BitronixTransaction.java:288)
        at bitronix.tm.BitronixTransaction.commit(BitronixTransaction.java:116)
        at bitronix.tm.BitronixTransactionManager.commit(BitronixTransactionManager.java:90)
        at org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:842)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:651)
        at org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:621)
        at org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:311)




Would I need to set any more of the settings on the configured jms PooledConnectionFactory?

Or perhaps the BTM TransactionManager settings - I see the likes of bitronix.tm.2pc.async???

I was going to try writing the message producer myself but as you say you can use the template and all works fine!


Thanks
Andre



Ludovic Orban wrote
Both cases look strange.

I do have a test application using BTM and a JmsTemplate and I've never encountered that 'session handle is closed' error nor the pool depletion one. I've tested it again with the sessionTransacted set to false then true and got the same result: it just works.

I'm trying to make sense of what you're trying to achieve with your setup and how you've plugged everything together. Could you please give me more details about that ? You must have done something wrong in your Spring config, maybe in the way you've plugged beans together or the way you use them.

Ludovic
Reply | Threaded
Open this post in threaded view
|

Re: Jetty Problem

Ludovic Orban
Administrator
Ok, I think I found where the problem lies. The javax.jms.IllegalStateException: The producer is closed exception makes sense in that context.

You should not try to execute transactional work in a @PostPersist callback: @PostPersist is executed during the JTA beforeCompletion event. This event occurs during transaction commit so all resources should have been closed by then which Spring properly does.

You might be luckier trying the @PrePersist callback instead but I'm not sure that one would work either.

If that doesn't work, I'd suggest looking for help from the Hibernate team. They might be able to recommend you a proper way of doing what you want to achieve.

Ludovic
Reply | Threaded
Open this post in threaded view
|

Re: Jetty Problem

urckle
Ludovic,
thanks a million for your help!!!!

These pointers have been invaluable.

Cheers
Andre



Ludovic Orban wrote
Ok, I think I found where the problem lies. The javax.jms.IllegalStateException: The producer is closed exception makes sense in that context.

You should not try to execute transactional work in a @PostPersist callback: @PostPersist is executed during the JTA beforeCompletion event. This event occurs during transaction commit so all resources should have been closed by then which Spring properly does.

You might be luckier trying the @PrePersist callback instead but I'm not sure that one would work either.

If that doesn't work, I'd suggest looking for help from the Hibernate team. They might be able to recommend you a proper way of doing what you want to achieve.

Ludovic
Reply | Threaded
Open this post in threaded view
|

Re: Jetty Problem

urckle
Just to update this entry, I have simply implemented an additional AOP Aspect that intercepts the points at which events I am interested in are occurring. Doing this works fine for my purposes as it falls into the proxy chain with the tx interceptor etc.

Thanks again for your assistance and the updated jar! Will you be making it available from the main site?


cheers
Andre




urckle wrote
Ludovic,
thanks a million for your help!!!!

These pointers have been invaluable.

Cheers
Andre



Ludovic Orban wrote
Ok, I think I found where the problem lies. The javax.jms.IllegalStateException: The producer is closed exception makes sense in that context.

You should not try to execute transactional work in a @PostPersist callback: @PostPersist is executed during the JTA beforeCompletion event. This event occurs during transaction commit so all resources should have been closed by then which Spring properly does.

You might be luckier trying the @PrePersist callback instead but I'm not sure that one would work either.

If that doesn't work, I'd suggest looking for help from the Hibernate team. They might be able to recommend you a proper way of doing what you want to achieve.

Ludovic
Reply | Threaded
Open this post in threaded view
|

Re: Jetty Problem

urckle
Just noticed this error. All tests were running fine and I can see all the messages that are expected on the Queue.

At some point I got this XAER_RMFAIL and can't seem to do anymore WRITES to the MySql DB. Could this be another issue with the driver:

Fri Feb 29 12:09:08 GMT 2008 DEBUG: Executing XA statement: XA START 0x6a657474792d62746d2d6e6f646530000001186518855e0000024e,0x6a657474792d62746d2d6e6f646530000001186518856e00000251,0x42746e78
12:09:08,733 WARN  [JDBCExceptionReporter] SQL Error: 0, SQLState: null
12:09:08,733 ERROR [JDBCExceptionReporter] error enlisting a JdbcConnectionHandle of a JdbcPooledConnection from datasource jdbc/amsDS in state ACCESSIBLE wrapping com.mysql.jdbc.jdbc2.optional.MysqlX
AConnection@1c0ef0c on com.mysql.jdbc.jdbc2.optional.ConnectionWrapper@db6594
12:09:08,733 ERROR [DoCreateFilterAction] Error:
org.springframework.orm.jpa.JpaSystemException: org.hibernate.exception.GenericJDBCException: could not execute query; nested exception is javax.persistence.PersistenceException: org.hibernate.excepti
on.GenericJDBCException: could not execute query
Caused by:
javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: could not execute query
        at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:630)
        at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:75)
        at org.springframework.orm.jpa.JpaTemplate$10.doInJpa(JpaTemplate.java:328)
        at org.springframework.orm.jpa.JpaTemplate.execute(JpaTemplate.java:191)
        at org.springframework.orm.jpa.JpaTemplate.executeFind(JpaTemplate.java:158)
        at org.springframework.orm.jpa.JpaTemplate.findByNamedParams(JpaTemplate.java:319)
        at com.company.dao.impl.JpaPortalDao.findValueItemsForFilter(JpaPortalDao.java:175)
        at com.company.dao.impl.JpaPortalDao$$FastClassByCGLIB$$a4894534.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:621)
        at com.company.dao.impl.JpaPortalDao$$EnhancerByCGLIB$$b580d48b.findValueItemsForFilter(<generated>)
        at com.company.business.filter.policy.BitFlagsHandler.setFilterValueItems(BitFlagsHandler.java:264)
        at com.company.business.filter.policy.BitFlagsHandler.updateFilterValues(BitFlagsHandler.java:124)
        at com.company.business.filter.policy.AbstractFilterHandler.updateFilter(AbstractFilterHandler.java:201)
        at com.company.business.filter.policy.AbstractFilterHandler.saveOrUpdate(AbstractFilterHandler.java:131)
        at com.company.business.filter.impl.FilterManagerBean.saveOrUpdate(FilterManagerBean.java:193)
        at com.company.business.filter.impl.FilterManagerBean$$FastClassByCGLIB$$cabd46e8.invoke(<generated>)
        at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
        at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:693)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:139)
        at com.company.business.aop.interceptor.AuditingMethodSecurityInterceptor.invoke(AuditingMethodSecurityInterceptor.java:82)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
        at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:107)
        at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:161)
        at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:628)
        at com.company.business.filter.impl.FilterManagerBean$$EnhancerByCGLIB$$e0dcdc48.saveOrUpdate(<generated>)
        at com.company.portal.bp.action.DoCreateFilterAction.doExecute(DoCreateFilterAction.java:71)
        at com.company.portal.bp.action.GroupBaseAction.execute(GroupBaseAction.java:48)
        at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:106)
        at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:413)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:225)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1858)
        at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:459)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
        at com.company.portal.bp.filter.EncodingFilter.doFilter(EncodingFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.company.portal.bp.filter.AuditFilter.doFilter(AuditFilter.java:75)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at com.company.portal.bp.filter.EnvironmentFilter.chainToPage(EnvironmentFilter.java:54)
        at com.company.portal.bp.filter.EnvironmentFilter.doFilter(EnvironmentFilter.java:42)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
        at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271)
        at com.company.portal.bp.security.AuthenticationFilter.doFilter(AuthenticationFilter.java:150)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.concurrent.ConcurrentSessionFilter.doFilter(ConcurrentSessionFilter.java:95)
        at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
        at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
        at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
        at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
        at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:211)
        at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139)
        at org.mortbay.jetty.Server.handle(Server.java:313)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506)
        at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:844)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
        at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396)
        at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)
Caused by: org.hibernate.exception.GenericJDBCException: could not execute query
        at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
        at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
        at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
        at org.hibernate.loader.Loader.doList(Loader.java:2223)
        at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
        at org.hibernate.loader.Loader.list(Loader.java:2099)
        at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
        at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
        at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
        at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
        at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
        at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:66)
        ... 80 more
Caused by: java.sql.SQLException: error enlisting a JdbcConnectionHandle of a JdbcPooledConnection from datasource jdbc/amsDS in state ACCESSIBLE wrapping com.mysql.jdbc.jdbc2.optional.MysqlXAConnecti
on@1c0ef0c on com.mysql.jdbc.jdbc2.optional.ConnectionWrapper@db6594
        at bitronix.tm.resource.jdbc.JdbcConnectionHandle.enlistResource(JdbcConnectionHandle.java:61)
        at bitronix.tm.resource.jdbc.JdbcConnectionHandle.prepareStatement(JdbcConnectionHandle.java:194)
        at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:505)
        at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:423)
        at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
        at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
        at org.hibernate.loader.Loader.doQuery(Loader.java:673)
        at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
        at org.hibernate.loader.Loader.doList(Loader.java:2220)
        ... 88 more
Caused by: bitronix.tm.internal.BitronixSystemException: cannot enlist an XAResourceHolderState with uniqueName=jdbc/amsDS XAResource=com.mysql.jdbc.jdbc2.optional.MysqlXAConnection@1c0ef0c with XID a
 Bitronix XID [6A657474792D62746D2D6E6F646530000001186518855E0000024E : 6A657474792D62746D2D6E6F646530000001186518856E00000251], error=XAER_RMFAIL
        at bitronix.tm.BitronixTransaction.enlistResource(BitronixTransaction.java:68)
        at bitronix.tm.resource.common.TransactionContextHelper.enlistInCurrentTransaction(TransactionContextHelper.java:51)
        at bitronix.tm.resource.jdbc.JdbcConnectionHandle.enlistResource(JdbcConnectionHandle.java:59)
        ... 96 more
Caused by: com.mysql.jdbc.jdbc2.optional.MysqlXAException: XAER_RMFAIL: The command cannot be executed when global transaction is in the  IDLE state
        at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.mapXAExceptionFromSQLException(MysqlXAConnection.java:562)
        at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.dispatchCommand(MysqlXAConnection.java:545)
        at com.mysql.jdbc.jdbc2.optional.MysqlXAConnection.start(MysqlXAConnection.java:485)
        at bitronix.tm.internal.XAResourceHolderState.start(XAResourceHolderState.java:147)
        at bitronix.tm.internal.XAResourceManager.enlist(XAResourceManager.java:84)
        at bitronix.tm.BitronixTransaction.enlistResource(BitronixTransaction.java:66)







urckle wrote
Just to update this entry, I have simply implemented an additional AOP Aspect that intercepts the points at which events I am interested in are occurring. Doing this works fine for my purposes as it falls into the proxy chain with the tx interceptor etc.

Thanks again for your assistance and the updated jar! Will you be making it available from the main site?


cheers
Andre




urckle wrote
Ludovic,
thanks a million for your help!!!!

These pointers have been invaluable.

Cheers
Andre



Ludovic Orban wrote
Ok, I think I found where the problem lies. The javax.jms.IllegalStateException: The producer is closed exception makes sense in that context.

You should not try to execute transactional work in a @PostPersist callback: @PostPersist is executed during the JTA beforeCompletion event. This event occurs during transaction commit so all resources should have been closed by then which Spring properly does.

You might be luckier trying the @PrePersist callback instead but I'm not sure that one would work either.

If that doesn't work, I'd suggest looking for help from the Hibernate team. They might be able to recommend you a proper way of doing what you want to achieve.

Ludovic
Reply | Threaded
Open this post in threaded view
|

Re: Jetty Problem

Ludovic Orban
Administrator
Hi,

I think I have an idea of what could cause this problem but I'll need debug logs to confirm my theory. Could you please collect BTM DEBUG logs in a separate file, reproduce the issue and post the file ?

The bug I've fixed will make its way in version 1.3 which will be released as time permits. I have a list improvements I've postponed for too long that I want to see included in that release.

Ludovic
Reply | Threaded
Open this post in threaded view
|

Re: Jetty Problem

urckle
Hi,
I will reproduce the error and post the logs as soon as I get a chance.

thanks


Ludovic Orban wrote
Hi,

I think I have an idea of what could cause this problem but I'll need debug logs to confirm my theory. Could you please collect BTM DEBUG logs in a separate file, reproduce the issue and post the file ?

The bug I've fixed will make its way in version 1.3 which will be released as time permits. I have a list improvements I've postponed for too long that I want to see included in that release.

Ludovic