-
1. Re: SeamExtendedManagedPersistencePhaseListener
gavin.king Apr 24, 2006 1:20 PM (in response to g.tomassoni)There was a bug like what you described, and one day I spent hours trying to track it down and concluded that it was not a bug in Seam, but rather a problem that only occurred after hot redeployment. I have always managed to make it go away by restarting JBoss.
However, I have not seen it recently, and think it might be fixed in Seam CVS / JBoss 4.0.4.CR2. -
2. Re: SeamExtendedManagedPersistencePhaseListener
g.tomassoni Apr 24, 2006 9:04 PM (in response to g.tomassoni)You're right: cold-deploying the app I don't get anymore an IllegalWhatever exception due to an already-started transaction from the non-seam servlet.
But now I get the following when accessing a parametrized page (eg.: thepage.jsf?c=3) from the very same page but different parameter (eg: from thepage.jsf?c=1) AND the switch happens in the very same HTTP connection (ie: the browser and tomcat are using an "http persistent connection").type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception javax.servlet.ServletException: could not register synchronization with JTA TransactionManager org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:52) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) root cause javax.servlet.ServletException: could not register synchronization with JTA TransactionManager javax.faces.webapp.FacesServlet.service(FacesServlet.java:152) it.edlui.confesercenti.web.filter.ClientCacheDisableFilter.doFilter(ClientCacheDisableFilter.java:43) org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:23) org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:45) org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) root cause org.hibernate.TransactionException: could not register synchronization with JTA TransactionManager org.hibernate.jdbc.JDBCContext.registerSynchronizationIfPossible(JDBCContext.java:174) org.hibernate.impl.SessionImpl.checkTransactionSynchStatus(SessionImpl.java:1824) org.hibernate.impl.SessionImpl.getSessionFactory(SessionImpl.java:1669) org.hibernate.ejb.AbstractEntityManagerImpl.markAsRollback(AbstractEntityManagerImpl.java:388) org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:540) org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:562) org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:513) org.hibernate.ejb.AbstractEntityManagerImpl.postInit(AbstractEntityManagerImpl.java:71) org.hibernate.ejb.EntityManagerImpl.<init>(EntityManagerImpl.java:35) org.hibernate.ejb.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:37) org.hibernate.ejb.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:32) org.jboss.ejb3.entity.InjectedEntityManagerFactory.createEntityManager(InjectedEntityManagerFactory.java:76) org.jboss.seam.core.ManagedPersistenceContext.create(ManagedPersistenceContext.java:53) sun.reflect.GeneratedMethodAccessor256.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:585) org.jboss.seam.util.Reflections.invoke(Reflections.java:13) org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:32) org.jboss.seam.Component.callComponentMethod(Component.java:1166) org.jboss.seam.Component.callCreateMethod(Component.java:1151) org.jboss.seam.Component.newInstance(Component.java:1140) org.jboss.seam.Component.getInstance(Component.java:1088) org.jboss.seam.Component.getInstance(Component.java:1071) org.jboss.seam.Component.getInstanceToInject(Component.java:1195) org.jboss.seam.Component.injectFields(Component.java:879) org.jboss.seam.Component.inject(Component.java:686) org.jboss.seam.interceptors.BijectionInterceptor.bijectTargetComponent(BijectionInterceptor.java:30) sun.reflect.GeneratedMethodAccessor112.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:585) org.jboss.seam.util.Reflections.invoke(Reflections.java:13) org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87) org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60) org.jboss.seam.interceptors.ConversationInterceptor.endOrBeginLongRunningConversation(ConversationInterceptor.java:68) sun.reflect.GeneratedMethodAccessor111.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:585) org.jboss.seam.util.Reflections.invoke(Reflections.java:13) org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87) org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60) org.jboss.seam.interceptors.BusinessProcessInterceptor.manageBusinessProcessContext(BusinessProcessInterceptor.java:60) sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:585) org.jboss.seam.util.Reflections.invoke(Reflections.java:13) org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87) org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60) org.jboss.seam.interceptors.RemoveInterceptor.removeIfNecessary(RemoveInterceptor.java:39) sun.reflect.GeneratedMethodAccessor109.invoke(Unknown Source) sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) java.lang.reflect.Method.invoke(Method.java:585) org.jboss.seam.util.Reflections.invoke(Reflections.java:13) org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87) org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60) org.jboss.seam.ejb.SeamInterceptor.aroundInvokeInContexts(SeamInterceptor.java:73) org.jboss.seam.ejb.SeamInterceptor.aroundInvoke(SeamInterceptor.java:45) org.jboss.seam.interceptors.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:51) org.jboss.seam.interceptors.JavaBeanInterceptor.intercept(JavaBeanInterceptor.java:39) it.myown.seam.ThisIsAComponentWithEntityManagerInjection$$EnhancerByCGLIB$$e6ba7c40.getRootCategories(<generated>)
Donno how Tomcat handles http persistent connections, but it may be that more requests are run in the very same thread (request -> suspend for I/O -> request etc. etc.).
If I copy the link heading toward thepage.jsf?c=3 from thepage.jsf?c=1, paste it to the browsers' address field and press "go", the exception isn't thrown (and images look fine, too).
Also, when the exception is thrown, reloading the page works (maybe tomcat closes the http conn on exceptions).
Again, after a while an exception had been thrown, I get this nice other stuff in the server logfile:02:36:28,468 ERROR [Naming] Could not obtain initial context javax.naming.NoInitialContextException: Cannot instantiate class: org.jnp.interfaces.NamingContextFactory [Root exception is java.lang.ClassNotFoundException: org/jnp/interfaces/NamingContextFactory] at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:657) at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:247) at javax.naming.InitialContext.init(InitialContext.java:223) at javax.naming.InitialContext.<init>(InitialContext.java:197) at org.jboss.seam.util.Naming.getInitialContext(Naming.java:26) at org.jboss.seam.util.Naming.getInitialContext(Naming.java:37) at org.jboss.seam.core.ManagedPersistenceContext.getEntityManagerFactory(ManagedPersistenceContext.java:83) at org.jboss.seam.core.ManagedPersistenceContext.create(ManagedPersistenceContext.java:53) at sun.reflect.GeneratedMethodAccessor256.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.seam.util.Reflections.invoke(Reflections.java:13) at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:32) at org.jboss.seam.Component.callComponentMethod(Component.java:1166) at org.jboss.seam.Component.callCreateMethod(Component.java:1151) at org.jboss.seam.Component.newInstance(Component.java:1140) at org.jboss.seam.Component.getInstance(Component.java:1088) at org.jboss.seam.Component.getInstance(Component.java:1071) at org.jboss.seam.Component.getInstanceToInject(Component.java:1195) at org.jboss.seam.Component.injectFields(Component.java:879) at org.jboss.seam.Component.inject(Component.java:686) at org.jboss.seam.interceptors.BijectionInterceptor.bijectTargetComponent(BijectionInterceptor.java:30) at sun.reflect.GeneratedMethodAccessor112.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.seam.util.Reflections.invoke(Reflections.java:13) at org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87) at org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60) at org.jboss.seam.interceptors.ConversationInterceptor.endOrBeginLongRunningConversation(ConversationInterceptor.java:68) at sun.reflect.GeneratedMethodAccessor111.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.seam.util.Reflections.invoke(Reflections.java:13) at org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87) at org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60) at org.jboss.seam.interceptors.BusinessProcessInterceptor.manageBusinessProcessContext(BusinessProcessInterceptor.java:60) at sun.reflect.GeneratedMethodAccessor110.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.seam.util.Reflections.invoke(Reflections.java:13) at org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87) at org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60) at org.jboss.seam.interceptors.RemoveInterceptor.removeIfNecessary(RemoveInterceptor.java:39) at sun.reflect.GeneratedMethodAccessor109.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.seam.util.Reflections.invoke(Reflections.java:13) at org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87) at org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60) at org.jboss.seam.ejb.SeamInterceptor.aroundInvokeInContexts(SeamInterceptor.java:73) at org.jboss.seam.ejb.SeamInterceptor.aroundInvoke(SeamInterceptor.java:55) at org.jboss.seam.interceptors.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:51) at org.jboss.seam.interceptors.JavaBeanInterceptor.intercept(JavaBeanInterceptor.java:39) at it.myown.seam.ThisIsAnotherComponentWithEntityManagerInjection$$EnhancerByCGLIB$$43b3d843.finalize(<generated>) at java.lang.ref.Finalizer.invokeFinalizeMethod(Native Method) at java.lang.ref.Finalizer.runFinalizer(Finalizer.java:83) at java.lang.ref.Finalizer.access$100(Finalizer.java:14) at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:160) Caused by: java.lang.ClassNotFoundException: org/jnp/interfaces/NamingContextFactory at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:242) at com.sun.naming.internal.VersionHelper12.loadClass(VersionHelper12.java:42) at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:654) ... 57 more
Seems something related to finalizing a component, but it is not the same from which I got the previous exception.
Seems tough, uh?
Better, seams tough... :) -
3. Re: SeamExtendedManagedPersistencePhaseListener
g.tomassoni Apr 24, 2006 9:07 PM (in response to g.tomassoni)Oh, by the way: I'm now using JBoss-4.0.4-CR2 and jboss-seam-CVS20060423.
-
4. Re: SeamExtendedManagedPersistencePhaseListener
gavin.king Apr 24, 2006 9:17 PM (in response to g.tomassoni)How about fixing this to begin with:
Caused by: java.lang.ClassNotFoundException: org/jnp/interfaces/NamingContextFactory
Looks like you have JNDI problems. -
5. Re: SeamExtendedManagedPersistencePhaseListener
g.tomassoni Apr 24, 2006 9:29 PM (in response to g.tomassoni)Well, it may be. But why it happens on finalizing a component and not when injecting EMs?
Also, if it is a classpath problem, I would expect to see it everytime, not in few, exact conditions.
Isn't that there is a classloader problem somewhere? Like, say, the tomcat's thread pool is grown from a different classloader then the one that creates the initial pool. (NOTE NOTE: just guessing).
Or... I have this in jboss-app.xml:<jboss-app> <loader-repository>seam.jboss.org:loader=mywebapp</loader-repository> <module><service>login-service.xml</service></module> </jboss-app>
Is it this the problem? I faithfully copied this on suggestion. I don't even know what's supposed to do... -
6. Re: SeamExtendedManagedPersistencePhaseListener
g.tomassoni Apr 26, 2006 7:59 AM (in response to g.tomassoni)What about the following? After restarting jboss and the app and accessing this page from the main one, the page is correctly shown but the request ends with a RollbackException, which mean someone marked rollback-only the transaction.
Please note that no place in the involved application code deals with marking the transaction rollback-only. The only place in which I could eventually do it is in the ImageServlet, but the two pages (the main one and the one for which I'm reporting this log) does not actually make use of it.2006-04-26 13:39:21,687 DEBUG [it.mycomp.myapp.web.filter.ClientCacheDisableFilter] Added cache-control attributes in response to "http://localhost:8080/myapp/catalog.jsf" 2006-04-26 13:39:21,687 DEBUG [org.jboss.seam.util.Naming] JNDI InitialContext properties:{java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces} 2006-04-26 13:39:21,687 DEBUG [org.jboss.seam.contexts.Lifecycle] >>> Begin web request 2006-04-26 13:39:21,687 DEBUG [org.jboss.seam.util.Naming] JNDI InitialContext properties:{java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces} 2006-04-26 13:39:21,687 DEBUG [org.jboss.seam.Component] instantiating Seam component: org.jboss.seam.core.manager 2006-04-26 13:39:21,687 DEBUG [org.jboss.seam.core.Manager] No stored conversation 2006-04-26 13:39:21,687 DEBUG [org.jboss.seam.contexts.Contexts] found in application context: org.jboss.seam.core.init 2006-04-26 13:39:21,687 DEBUG [org.jboss.seam.jsf.SeamPhaseListener] After restore view, conversation context: ConversationContext(2) 2006-04-26 13:39:21,687 DEBUG [org.jboss.seam.util.Naming] JNDI InitialContext properties:{java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces} 2006-04-26 13:39:21,687 DEBUG [org.jboss.seam.Component] instantiating Seam component: facesMessages 2006-04-26 13:39:21,812 DEBUG [org.jboss.seam.jsf.SeamVariableResolver] resolving name: localizer 2006-04-26 13:39:21,812 DEBUG [org.jboss.seam.Component] instantiating Seam component: localizer 2006-04-26 13:39:21,812 DEBUG [org.jboss.seam.jsf.SeamVariableResolver] resolving name: localizer 2006-04-26 13:39:21,812 DEBUG [org.jboss.seam.contexts.Contexts] found in event context: localizer 2006-04-26 13:39:21,812 DEBUG [org.jboss.seam.jsf.SeamVariableResolver] resolved name to seam component 2006-04-26 13:39:21,812 DEBUG [org.jboss.seam.jsf.SeamVariableResolver] resolved name to seam component 2006-04-26 13:39:21,828 DEBUG [org.jboss.seam.Component] instantiating Seam component: myDatabase 2006-04-26 13:39:21,828 DEBUG [org.jboss.seam.util.Naming] JNDI InitialContext properties:{java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces} 2006-04-26 13:39:21,828 DEBUG [org.hibernate.jdbc.JDBCContext] TransactionFactory reported no active transaction; Synchronization not registered 2006-04-26 13:39:21,828 DEBUG [org.hibernate.impl.SessionImpl] opened session at timestamp: 4694227197247488 2006-04-26 13:39:21,828 DEBUG [org.hibernate.jdbc.JDBCContext] TransactionFactory reported no active transaction; Synchronization not registered 2006-04-26 13:39:21,828 DEBUG [org.hibernate.ejb.AbstractEntityManagerImpl] Looking for a JTA transaction to join 2006-04-26 13:39:21,843 ERROR [STDERR] org.hibernate.TransactionException: could not register synchronization with JTA TransactionManager at org.hibernate.jdbc.JDBCContext.registerSynchronizationIfPossible(JDBCContext.java:174) at org.hibernate.impl.SessionImpl.checkTransactionSynchStatus(SessionImpl.java:1824) at org.hibernate.impl.SessionImpl.getSessionFactory(SessionImpl.java:1669) at org.hibernate.ejb.AbstractEntityManagerImpl.markAsRollback(AbstractEntityManagerImpl.java:388) at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:540) at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:562) at org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:513) at org.hibernate.ejb.AbstractEntityManagerImpl.postInit(AbstractEntityManagerImpl.java:71) at org.hibernate.ejb.EntityManagerImpl.<init>(EntityManagerImpl.java:35) at org.hibernate.ejb.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:37) at org.hibernate.ejb.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:32) at org.jboss.ejb3.entity.InjectedEntityManagerFactory.createEntityManager(InjectedEntityManagerFactory.java:76) at org.jboss.seam.core.ManagedPersistenceContext.create(ManagedPersistenceContext.java:53) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.seam.util.Reflections.invoke(Reflections.java:13) at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:32) at org.jboss.seam.Component.callComponentMethod(Component.java:1166) at org.jboss.seam.Component.callCreateMethod(Component.java:1151) at org.jboss.seam.Component.newInstance(Component.java:1140) at org.jboss.seam.Component.getInstance(Component.java:1088) at org.jboss.seam.Component.getInstance(Component.java:1071) at org.jboss.seam.Component.getInstanceToInject(Component.java:1195) at org.jboss.seam.Component.injectFields(Component.java:879) at org.jboss.seam.Component.inject(Component.java:686) at org.jboss.seam.interceptors.BijectionInterceptor.bijectTargetComponent(BijectionInterceptor.java:30) at sun.reflect.GeneratedMethodAccessor141.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.seam.util.Reflections.invoke(Reflections.java:13) at org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87) at org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60) at org.jboss.seam.interceptors.ConversationInterceptor.endOrBeginLongRunningConversation(ConversationInterceptor.java:68) at sun.reflect.GeneratedMethodAccessor140.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.seam.util.Reflections.invoke(Reflections.java:13) at org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87) at org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60) at org.jboss.seam.interceptors.BusinessProcessInterceptor.manageBusinessProcessContext(BusinessProcessInterceptor.java:60) at sun.reflect.GeneratedMethodAccessor139.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.seam.util.Reflections.invoke(Reflections.java:13) at org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87) at org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60) at org.jboss.seam.interceptors.RemoveInterceptor.removeIfNecessary(RemoveInterceptor.java:39) at sun.reflect.GeneratedMethodAccessor138.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.seam.util.Reflections.invoke(Reflections.java:13) at org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87) at org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60) at org.jboss.seam.ejb.SeamInterceptor.aroundInvokeInContexts(SeamInterceptor.java:73) at org.jboss.seam.ejb.SeamInterceptor.aroundInvoke(SeamInterceptor.java:45) at org.jboss.seam.interceptors.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:51) at org.jboss.seam.interceptors.JavaBeanInterceptor.intercept(JavaBeanInterceptor.java:39) at it.mycomp.myapp.seam.Localizer$$EnhancerByCGLIB$$554d57b5.getPreferredLocale(<generated>) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:438) at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:82) at com.sun.facelets.el.LegacyELContext$LegacyELResolver.getValue(LegacyELContext.java:141) at com.sun.el.parser.AstValue.getValue(AstValue.java:96) at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:183) at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71) at com.sun.facelets.tag.TagAttribute.getObject(TagAttribute.java:233) at com.sun.facelets.tag.TagAttribute.getObject(TagAttribute.java:166) at com.sun.facelets.tag.jsf.ComponentSupport.getLocale(ComponentSupport.java:144) at com.sun.facelets.tag.jsf.core.ViewHandler.apply(ViewHandler.java:80) at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273) at com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:140) at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:113) at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273) at com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:140) at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:113) at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) at com.sun.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:95) at com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:481) at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:523) at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:367) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at it.mycomp.myapp.web.filter.ClientCacheDisableFilter.doFilter(ClientCacheDisableFilter.java:43) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilt 2006-04-26 13:39:21,843 ERROR [STDERR] er.java:23) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:45) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:54) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:174) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595) Caused by: javax.transaction.RollbackException: Already marked for rollback TransactionImpl:XidImpl[FormatId=257, GlobalId=fammiglio/19, BranchQual=, localId=19] at org.jboss.tm.TransactionImpl.registerSynchronization(TransactionImpl.java:632) at org.hibernate.jdbc.JDBCContext.registerSynchronizationIfPossible(JDBCContext.java:164) ... 118 more 2006-04-26 13:39:22,000 DEBUG [org.jboss.mx.loading.UnifiedClassLoader] New jmx UCL with url null 2006-04-26 13:39:22,000 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@10ddb86, cl=org.jboss.mx.loading.HeirarchicalLoaderRepository3$CacheClassLoader@1b5a4ca{ url=null ,addedOrder=0} 2006-04-26 13:39:22,000 DEBUG [org.jboss.mx.loading.UnifiedClassLoader] New jmx UCL with url null 2006-04-26 13:39:22,000 DEBUG [org.jboss.mx.loading.RepositoryClassLoader] setRepository, repository=org.jboss.mx.loading.HeirarchicalLoaderRepository3@10ddb86, cl=org.jboss.mx.loading.UnifiedClassLoader3@55e552{ url=null ,addedOrder=0} 2006-04-26 13:39:22,015 ERROR [STDERR] 26-apr-2006 13.39.22 com.sun.facelets.FaceletViewHandler handleRenderException GRAVE: Error Rendering View[/catalog.xhtml] com.sun.facelets.tag.TagAttributeException: /include/header.xhtml @10,2 locale="#{localizer.preferredLocale}" /include/header.xhtml @10,2 locale="#{localizer.preferredLocale}": Exception getting value of property preferredLocale of base of type : it.mycomp.myapp.seam.Localizer$$EnhancerByCGLIB$$554d57b5 at com.sun.facelets.tag.TagAttribute.getObject(TagAttribute.java:235) at com.sun.facelets.tag.TagAttribute.getObject(TagAttribute.java:166) at com.sun.facelets.tag.jsf.ComponentSupport.getLocale(ComponentSupport.java:144) at com.sun.facelets.tag.jsf.core.ViewHandler.apply(ViewHandler.java:80) at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) at com.sun.facelets.tag.CompositeFaceletHandler.apply(CompositeFaceletHandler.java:47) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273) at com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:140) at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:113) at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:248) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:294) at com.sun.facelets.impl.DefaultFacelet.include(DefaultFacelet.java:273) at com.sun.facelets.impl.DefaultFaceletContext.includeFacelet(DefaultFaceletContext.java:140) at com.sun.facelets.tag.ui.CompositionHandler.apply(CompositionHandler.java:113) at com.sun.facelets.compiler.NamespaceHandler.apply(NamespaceHandler.java:49) at com.sun.facelets.impl.DefaultFacelet.apply(DefaultFacelet.java:95) at com.sun.facelets.FaceletViewHandler.buildView(FaceletViewHandler.java:481) at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:523) at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:367) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:138) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at it.mycomp.myapp.web.filter.ClientCacheDisableFilter.doFilter(ClientCacheDisableFilter.java:43) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:23) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:45) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:54) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:174) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595) Caused by: javax.el.ELException: /include/header.xhtml @10,2 locale="#{localizer.preferredLocale}": Exception getting value of property preferredLocale of base of type : it.mycomp.myapp.seam.Localizer$$EnhancerByCGLIB$$554d57b5 at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:76) at com.sun.facelets.tag.TagAttribute.getObject(TagAttribute.java:233) ... 48 more Caused by: javax.faces.el.EvaluationException: Bean: it.mycomp.myapp.seam.Localizer$$EnhancerByCGLIB$$554d57b5, property: preferredLocale at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:442) at org.apache.myfaces.el.PropertyResolverImpl.getValue(PropertyResolverImpl.java:82) at com.sun.facelets.el.LegacyELContext$LegacyELResolver.getValue(LegacyELContext.java:141) at com.sun.el.parser.AstValue.getValue(AstValue.java:96) at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:183) at com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71) ... 49 more Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.myfaces.el.PropertyResolverImpl.getProperty(PropertyResolverImpl.java:438) ... 54 more Caused by: org.hibernate.TransactionException: could not register synchronization with JTA TransactionManager at org.hibernate.jdbc.JDBCContext.registerSynchronizationIfPossible(JDBCContext.java:174) at org.hibernate.impl.SessionImpl.checkTransactionSynchStatus(SessionImpl.java:1824) at org.hibernate.impl.SessionImpl.getSessionFactory(SessionImpl.java:1669) at org.hibernate.ejb.AbstractEntityManagerImpl.markAsRollback(AbstractEntityManagerImpl.java:388) at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:540) at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:562) at org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:513) at org.hibernate.ejb.AbstractEntityManagerImpl.postInit(AbstractEntityManagerImpl.java:71) at org.hibernate.ejb.EntityManagerImpl.<init>(EntityManagerImpl.java:35) at org.hibernate.ejb.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:37) at org.hibernate.ejb.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:32) at org.jboss.ejb3.entity.InjectedEntityManagerFactory.createEntityManager(InjectedEntityManagerFactory.java:76) at org.jboss.seam.core.ManagedPersistenceContext.create(ManagedPersistenceContext.java:53) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.seam.util.Reflections.invoke(Reflections.java:13) at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:32) at org.jboss.seam.Component.callComponentMethod(Component.java:1166) at org.jboss.seam.Component.callCreateMethod(Component.java:1151) at org.jboss.seam.Component.newInstance(Component.java:1140) at org.jboss.seam.Component.getInstance(Component.ja 2006-04-26 13:39:22,015 ERROR [STDERR] va:1088) at org.jboss.seam.Component.getInstance(Component.java:1071) at org.jboss.seam.Component.getInstanceToInject(Component.java:1195) at org.jboss.seam.Component.injectFields(Component.java:879) at org.jboss.seam.Component.inject(Component.java:686) at org.jboss.seam.interceptors.BijectionInterceptor.bijectTargetComponent(BijectionInterceptor.java:30) at sun.reflect.GeneratedMethodAccessor141.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.seam.util.Reflections.invoke(Reflections.java:13) at org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87) at org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60) at org.jboss.seam.interceptors.ConversationInterceptor.endOrBeginLongRunningConversation(ConversationInterceptor.java:68) at sun.reflect.GeneratedMethodAccessor140.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.seam.util.Reflections.invoke(Reflections.java:13) at org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87) at org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60) at org.jboss.seam.interceptors.BusinessProcessInterceptor.manageBusinessProcessContext(BusinessProcessInterceptor.java:60) at sun.reflect.GeneratedMethodAccessor139.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.seam.util.Reflections.invoke(Reflections.java:13) at org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87) at org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60) at org.jboss.seam.interceptors.RemoveInterceptor.removeIfNecessary(RemoveInterceptor.java:39) at sun.reflect.GeneratedMethodAccessor138.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.jboss.seam.util.Reflections.invoke(Reflections.java:13) at org.jboss.seam.interceptors.Interceptor.aroundInvoke(Interceptor.java:87) at org.jboss.seam.interceptors.SeamInvocationContext.proceed(SeamInvocationContext.java:60) at org.jboss.seam.ejb.SeamInterceptor.aroundInvokeInContexts(SeamInterceptor.java:73) at org.jboss.seam.ejb.SeamInterceptor.aroundInvoke(SeamInterceptor.java:45) at org.jboss.seam.interceptors.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:51) at org.jboss.seam.interceptors.JavaBeanInterceptor.intercept(JavaBeanInterceptor.java:39) at it.mycomp.myapp.seam.Localizer$$EnhancerByCGLIB$$554d57b5.getPreferredLocale(<generated>) ... 59 more Caused by: javax.transaction.RollbackException: Already marked for rollback TransactionImpl:XidImpl[FormatId=257, GlobalId=fammiglio/19, BranchQual=, localId=19] at org.jboss.tm.TransactionImpl.registerSynchronization(TransactionImpl.java:632) at org.hibernate.jdbc.JDBCContext.registerSynchronizationIfPossible(JDBCContext.java:164) ... 118 more 2006-04-26 13:39:22,093 DEBUG [org.jboss.seam.util.Naming] JNDI InitialContext properties:{java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces} 2006-04-26 13:39:22,093 DEBUG [org.jboss.seam.contexts.Lifecycle] After render response, destroying contexts 2006-04-26 13:39:22,093 DEBUG [org.jboss.seam.contexts.Lifecycle] destroying event context 2006-04-26 13:39:22,093 DEBUG [org.jboss.seam.contexts.Contexts] destroying: org.jboss.seam.core.manager 2006-04-26 13:39:22,093 DEBUG [org.jboss.seam.contexts.Contexts] destroying: localizer 2006-04-26 13:39:22,093 DEBUG [org.jboss.seam.contexts.Lifecycle] destroying conversation context 2006-04-26 13:39:22,109 DEBUG [org.jboss.seam.contexts.Contexts] destroying: facesMessages 2006-04-26 13:39:22,109 DEBUG [org.jboss.seam.contexts.Lifecycle] flushing server-side conversation context 2006-04-26 13:39:22,109 DEBUG [org.jboss.seam.contexts.Lifecycle] <<< End web request 2006-04-26 13:39:35,921 DEBUG [org.jboss.seam.contexts.Lifecycle] destroying event context
-
7. Re: SeamExtendedManagedPersistencePhaseListener
gavin.king Apr 26, 2006 12:50 PM (in response to g.tomassoni)Sure, Seam components will often mark the transaction rollbackonly when an exception propagates out of them.
For JavaBean components, it happens whenever *any* exception is thrown. For EJB session beans it happens according to the spec rules.
However, there is a bug in Hibernate here (that causes your stacktrace) that we are in the process of fixing:
http://jira.jboss.com/jira/browse/EJBTHREE-540 -
8. Re: SeamExtendedManagedPersistencePhaseListener
rdewell Apr 27, 2006 11:20 PM (in response to g.tomassoni)g.tomassoni, did you ever find a solution to your problem of:
"could not register synchronization with JTA TransactionManager"
We are experiencing this after upgrading Seam/Jboss/EJB3 and are unable to find the source. Similar to your description, the first request works fine, and then the second request throws this.
Thanks,
Ryan -
9. Re: SeamExtendedManagedPersistencePhaseListener
gavin.king Apr 27, 2006 11:38 PM (in response to g.tomassoni)First step is to figure out why the txn is getting rolled back ;-)
-
10. Re: SeamExtendedManagedPersistencePhaseListener
g.tomassoni Apr 28, 2006 10:05 AM (in response to g.tomassoni)I found a (very) temporary workaround to the transaction-still-there: don't use the SeamExtendedManagedPersistencePhaseListener.
I had somewhere a servlet filter adding transactional behaviour to http requests. It basicly wraps a transaction begin/commit around an http request, rolling the transaction back on exceptions. I just put this servlet on top of the SeamServlet and used SeamPhaseListener instead of the extended one. It works more or less (didn't try with jBPM), but please don't ask me exactly why.
Gavin, I see there is a SeamTransactionManagedPersistencePhaseListener, which sounds close the the temporary kludge I applied. I would like to give it a try, but it seems to me that's not referenced in any doc. Defining it as a PhaseListener in my app, I got this:2006-04-28 15:57:25,921 DEBUG [org.jboss.seam.util.Naming] JNDI InitialContext properties:{java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces} 2006-04-28 15:57:25,937 DEBUG [org.jboss.seam.jsf.SeamTransactionManagedPersistencePhaseListener] Starting transaction prior to RESTORE_VIEW phase 2006-04-28 15:57:25,937 DEBUG [org.jboss.seam.util.Naming] JNDI InitialContext properties:{java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces} 2006-04-28 15:57:25,953 DEBUG [org.jboss.seam.contexts.Lifecycle] >>> Begin web request 2006-04-28 15:57:25,968 DEBUG [org.jboss.seam.contexts.Lifecycle] Session started 2006-04-28 15:57:26,046 DEBUG [org.jboss.seam.Component] instantiating Seam component: localeSelector 2006-04-28 15:57:26,046 DEBUG [org.jboss.seam.jsf.SeamTransactionManagedPersistencePhaseListener] Flushing persistence contexts after INVOKE_APPLICATION phase 2006-04-28 15:57:26,062 DEBUG [org.jboss.seam.util.Naming] JNDI InitialContext properties:{java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces} 2006-04-28 15:57:26,109 ERROR [org.jboss.seam.servlet.SeamExceptionFilter] uncaught exception handled by Seam javax.servlet.ServletException: Could not flush to database at javax.faces.webapp.FacesServlet.service(FacesServlet.java:152) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at it.mycomp.myapp.web.filter.ClientCacheDisableFilter.doFilter(ClientCacheDisableFilter.java:43) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:23) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:45) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:54) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:174) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595) 2006-04-28 15:57:26,281 DEBUG [org.jboss.seam.util.Naming] JNDI InitialContext properties:{java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces} 2006-04-28 15:57:26,296 INFO [org.jboss.seam.servlet.SeamExceptionFilter] killing transaction 2006-04-28 15:57:26,296 DEBUG [org.jboss.seam.util.Naming] JNDI InitialContext properties:{java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory, java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces} 2006-04-28 15:57:26,312 DEBUG [org.jboss.seam.contexts.Lifecycle] After request, destroying contexts 2006-04-28 15:57:26,328 DEBUG [org.jboss.seam.contexts.Lifecycle] destroying event context 2006-04-28 15:57:26,328 DEBUG [org.jboss.seam.contexts.Lifecycle] <<< End web request 2006-04-28 15:57:26,328 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[localhost].[/e-sercenti].[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception java.lang.IllegalStateException: Could not flush to database at org.jboss.seam.jsf.SeamTransactionManagedPersistencePhaseListener.flush(SeamTransactionManagedPersistencePhaseListener.java:130) at org.jboss.seam.jsf.SeamTransactionManagedPersistencePhaseListener.afterPhase(SeamTransactionManagedPersistencePhaseListener.java:61) at org.apache.myfaces.lifecycle.LifecycleImpl.informPhaseListenersAfter(LifecycleImpl.java:519) at org.apache.myfaces.lifecycle.LifecycleImpl.restoreView(LifecycleImpl.java:178) at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:64) at javax.faces.webapp.FacesServlet.service(FacesServlet.java:137) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at it.mycomp.myapp.web.filter.ClientCacheDisableFilter.doFilter(ClientCacheDisableFilter.java:43) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.seam.servlet.SeamRedirectFilter.doFilter(SeamRedirectFilter.java:23) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.jboss.seam.servlet.SeamExceptionFilter.doFilter(SeamExceptionFilter.java:45) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:202) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178) at org.jboss.web.tomcat.security.CustomPrincipalValve.invoke(CustomPrincipalValve.java:54) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:174) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:74) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869) at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664) at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527) at org.apache.tomcat.util.net.MasterSlaveWorkerThread.run(MasterSlaveWorkerThread.java:112) at java.lang.Thread.run(Thread.java:595) Caused by: java.lang.NullPointerException at org.jboss.seam.jsf.SeamTransactionManagedPersistencePhaseListener.flushEntityManager(SeamTransactionManagedPersistencePhaseListener.java:137) at org.jboss.seam.jsf.SeamTransactionManagedPersistencePhaseListener.flush(SeamTransactionManagedPersistencePhaseListener.java:115) ... 31 more
And no page shown.
The problem seems to be related to the fact that Contexts.getConversationContext() yields a null value.
Is SeamTransactionManagedPersistencePhaseListener a residual of early seam's development phases or is supposed to be used? If this is the case, how are we supposed to?
Thanks, -
11. Re: SeamExtendedManagedPersistencePhaseListener
gavin.king Apr 28, 2006 11:50 AM (in response to g.tomassoni)I had somewhere a servlet filter adding transactional behaviour to http requests. It basicly wraps a transaction begin/commit around an http request, rolling the transaction back on exceptions.
If you try to mix your own tx management with Seam tx management, you will break stuff. No wonder you have been having problems.
You are meant to use SEMPPL together with SeamServletFilter, and you will get all the tx management you will need. Don't add other stuff on top.
STMPPL is frankly not recommended, since SEMPPL is better. (And it is not currently being tested anywhere, and I don't guarantee it will be there forever.) However, I think I've fixed the NPE you encountered. -
12. Re: SeamExtendedManagedPersistencePhaseListener
rdewell Apr 28, 2006 12:05 PM (in response to g.tomassoni)He's not using SEMPPL + his own TX management. He's using his own TX management despite SEMPPL.
He only moved away from SEMPPL to his own TX management when he could not resolve the exception previously mentioned in this thread: "could not register synchronization with JTA TransactionManager", caused by "Already marked for rollback TransactionImpl".
We've got code that's been running fine for 6 months on Seam beta 1 + JBoss 4.0.3. Now with the upgrade we're hitting this exception. I wish whatever code was marking the transaction as rolledback would throw an exception as it's rolling it back. I've been working at this for days without making any progress. Going back to Seam beta 1 and Jboss 4.0.3 hardly seems like a solution. -
13. Re: SeamExtendedManagedPersistencePhaseListener
gavin.king Apr 28, 2006 12:18 PM (in response to g.tomassoni)Right, but SEMPPL does tx management. In fact, that is *all* it does. If you want to do your own tx management, you don't need it.
I wish whatever code was marking the transaction as rolledback would throw an exception as it's rolling it back
The only things that call setRollbackOnly are the EJB container (as defined by the spec), the EM (as defined by the spec) and the RollbackInterceptor (for JavaBean components).
This only happens as an exception is propagating out of one of them, so there is no way that setRollbackOnly() is ever called w/o an exception propagation. So unless either the application or JSF is swallowing exceptions, there _is_ an exception.
The only problem here is the known bug where EJB3 and Hibernate try to register synchronizations on a tx marked for rollback. -
14. Re: SeamExtendedManagedPersistencePhaseListener
g.tomassoni Apr 28, 2006 12:22 PM (in response to g.tomassoni)If you try to mix your own tx management with Seam tx management, you will break stuff. No wonder you have been having problems.
Somehow, I'd the feeling you would reply this way... :)
Gavin, I added the transactional filter to the request chain to use the SeamServletFilter, not the SeamExtendedManagedPersistenceWhatever. And this happened yesterday, too.
I'm in need to keep going with development, you know.However, I think I've fixed the NPE you encountered.
This is really good. Will it be in today's snapshot?You are meant to use SEMPPL together with SeamServletFilter
SeamServletFilter? Do you mean SeamExceptionFilter? Or do I have to use SeamServletFilter for my non-seam ImageServlet (which doesn't uses sessions, conversations and seam at all)?
I mean -just to know- in the case you meant SeamServletFilter, servlets transactions are not anymore decoupled with SEMPPL?