[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-2877) Seam Managed Transactions doesn't always clean up transactions it starts
by Clint Popetz (JIRA)
Seam Managed Transactions doesn't always clean up transactions it starts
------------------------------------------------------------------------
Key: JBSEAM-2877
URL: http://jira.jboss.com/jira/browse/JBSEAM-2877
Project: Seam
Issue Type: Bug
Affects Versions: 2.0.2.CR1
Reporter: Clint Popetz
Attachments: seamPhaseListener-cleanup-tx.diff
The behavior I'm describing is in servlet code; I have no idea how portlets work. So the attached patch is not complete.
The SeamPhaseListener is starting a tx before the restoreView phase. However, if a runtime exception is thrown in, for example, the conversion and propagation of page request parameters to the event context, this transaction is marked rollbackOnly by the RollbackInterceptor, but afterServletPhase() will never call handleTransactionsAfterPhase(), and the transaction will never be rolled back. This leaves an active-but-aborted tx live for that thread. and any subsequent code that tries to use an EJB session bean will trigger further spurious exceptions, because the EJB3 tx is dead.
My solution locally was to wrap the final half of afterServletPhase in a finally(). That's kind of a hack, but it does work correctly for me. It probably needs further investigation.
I realize that post-exception code is tricky at best, but it seems reasonable to require SeamPhaseListener to at least roll back the tx if it started it, so that whatever work the Exceptions component does has a reasonable JTA state to work with.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
17 years, 11 months
[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-2836) seam-gen WAR release test throws EntityNotFoundException when creating vehicle
by Jay Balunas (JIRA)
seam-gen WAR release test throws EntityNotFoundException when creating vehicle
------------------------------------------------------------------------------
Key: JBSEAM-2836
URL: http://jira.jboss.com/jira/browse/JBSEAM-2836
Project: JBoss Seam
Issue Type: Bug
Components: Framework
Affects Versions: 2.0.2.CR1
Reporter: Jay Balunas
Fix For: 2.0.2.CR2
Create a seam-gen WAR based application following the instructions from the release-process.txt. Including reverse engineering the provided MySQL tables. Deploy to JBoss 4.2.2.GA.
Select the Vehicle list link, and click the "create vehicle" button and get the error below in the logs and a JSF error page. You can create a vehicle through the "add vehicle" option of the users page. When I ran the same test though JBDS there was no issue. I double checked the seam-gen version (recreated, and deployed) and had the same issue.
10:09:38,675 ERROR [STDERR] Apr 3, 2008 10:09:38 AM com.sun.facelets.FaceletViewHandler handleRenderException
SEVERE: Error Rendering View[/VehicleEdit.xhtml]
javax.el.ELException: /VehicleEdit.xhtml: Error reading 'managed' on type org.jboss.seam.release.action.VehicleHome_$$_javassist_6
at com.sun.facelets.compiler.TextInstruction.write(TextInstruction.java:48)
at com.sun.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:39)
at org.ajax4jsf.renderkit.RendererBase.renderChild(RendererBase.java:280)
at org.richfaces.renderkit.html.PanelRenderer.doEncodeBegin(PanelRenderer.java:168)
at org.richfaces.renderkit.html.PanelRenderer.doEncodeBegin(PanelRenderer.java:128)
at org.ajax4jsf.renderkit.RendererBase.encodeBegin(RendererBase.java:101)
at javax.faces.component.UIComponentBase.encodeBegin(UIComponentBase.java:788)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:884)
at javax.faces.render.Renderer.encodeChildren(Renderer.java:137)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:812)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:886)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:892)
at com.sun.facelets.FaceletViewHandler.renderView(FaceletViewHandler.java:592)
at org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:108)
at org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:216)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:106)
at com.sun.faces.lifecycle.LifecycleImpl.phase(LifecycleImpl.java:251)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:144)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:245)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
at org.jboss.seam.debug.hot.HotDeployFilter.doFilter(HotDeployFilter.java:68)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:85)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:141)
at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:281)
at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:60)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:58)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:432)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
at java.lang.Thread.run(Thread.java:595)
Caused by: org.jboss.seam.framework.EntityNotFoundException: entity not found: org.jboss.seam.release.model.Vehicle#org.jboss.seam.release.model.VehicleId@5ae9
at org.jboss.seam.framework.Home.handleNotFound(Home.java:185)
at org.jboss.seam.framework.EntityHome.find(EntityHome.java:128)
at org.jboss.seam.framework.Home.initInstance(Home.java:155)
at org.jboss.seam.framework.Home.getInstance(Home.java:121)
at org.jboss.seam.framework.EntityHome.isManaged(EntityHome.java:43)
at sun.reflect.GeneratedMethodAccessor369.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:21)
at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:31)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56)
at org.jboss.seam.core.BijectionInterceptor.aroundInvoke(BijectionInterceptor.java:46)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.persistence.ManagedEntityIdentityInterceptor.aroundInvoke(ManagedEntityIdentityInterceptor.java:48)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:31)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.transaction.TransactionInterceptor$1.work(TransactionInterceptor.java:38)
at org.jboss.seam.util.Work.workInTransaction(Work.java:41)
at org.jboss.seam.transaction.TransactionInterceptor.aroundInvoke(TransactionInterceptor.java:32)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:42)
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68)
at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107)
at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:166)
at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:102)
at org.jboss.seam.release.action.VehicleHome_$$_javassist_6.isManaged(VehicleHome_$$_javassist_6.java)
at sun.reflect.GeneratedMethodAccessor369.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
at com.sun.faces.el.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:64)
at org.jboss.el.parser.AstPropertySuffix.getValue(AstPropertySuffix.java:53)
at org.jboss.el.parser.AstValue.getValue(AstValue.java:67)
at org.jboss.el.parser.AstChoice.getValue(AstChoice.java:27)
at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
at com.sun.facelets.el.ELText$ELTextVariable.writeText(ELText.java:184)
at com.sun.facelets.el.ELText$ELTextComposite.writeText(ELText.java:108)
at com.sun.facelets.compiler.TextInstruction.write(TextInstruction.java:45)
... 55 more
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
17 years, 11 months
[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-2930) Exception handling in pages.xml ignores EL expressions
by Wolfgang Chico Toepfer (JIRA)
Exception handling in pages.xml ignores EL expressions
------------------------------------------------------
Key: JBSEAM-2930
URL: http://jira.jboss.com/jira/browse/JBSEAM-2930
Project: Seam
Issue Type: Bug
Components: Framework
Affects Versions: 2.0.1.GA
Environment: JBOSS 4.2.2, Windows XP
Reporter: Wolfgang Chico Toepfer
When I try to catch and handle an exception by means of the exception tag in pages.xml, the exception is not properly handled because the EL expression is not resolved.
<exception class="de.pta.exception.ValidationException">
<redirect view-id="#{emrNavigationManager.currentViewId}" />
</exception>
The same problem also occurs with the annotation alternative:
@Redirect(viewId="#{emrNavigationManager.currentViewId}")
public class ValidationException extends RuntimeException {
public ValidationException(String message) {
super(message);
}
}
Here's the log:
13:07:25,229 ERROR [[Faces Servlet]] Servlet.service() for servlet Faces Servlet threw exception
java.lang.NullPointerException
at org.jboss.seam.mock.MockViewHandler.getActionURL(MockViewHandler.java:41)
at org.jboss.seam.jsf.SeamViewHandler.getActionURL(SeamViewHandler.java:74)
at org.jboss.seam.faces.FacesManager.redirect(FacesManager.java:154)
at org.jboss.seam.faces.Navigator.redirect(Navigator.java:46)
at org.jboss.seam.exception.RedirectHandler.handle(RedirectHandler.java:51)
at org.jboss.seam.exception.Exceptions.handle(Exceptions.java:75)
at org.jboss.seam.web.ExceptionFilter.endWebRequestAfterException(ExceptionFilter.java:114)
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:70)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:241)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:198)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:141)
at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at de.pta.servlet.HttpSessionTimeoutFilter.doFilter(HttpSessionTimeoutFilter.java:67)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:433)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
17 years, 11 months
[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-2591) page actions fail under load testing
by Samuel Mendenhall (JIRA)
page actions fail under load testing
------------------------------------
Key: JBSEAM-2591
URL: http://jira.jboss.com/jira/browse/JBSEAM-2591
Project: JBoss Seam
Issue Type: Bug
Reporter: Samuel Mendenhall
Priority: Critical
Page actions fail to be invoked when load testing multiple requests simultaneously. Pages actions do correctly get processed when those requests are given an interval between executions, thus not concurrent.
Code for reproduction:
<page view-id="/home.xhtml" login-required="false">
<action execute="#{someComponent.someMethod}"/>
</page>
@Name("someComponent")
public class SomeComponent {
@Logger private Log log;
@In FacesMessages facesMessages;
public void someMethod() {
log.info("someComponent:someMethod invoked at " + Calendar.getInstance().getTime());
facesMessages.add("someComponent:someMethod invoked at " + Calendar.getInstance().getTime());
}
}
There is on average of between 1-3 failed actions per 20 concurrent requests from initial analysis. The failed action presents absolutely no exception, the method is just not called, no log message in the console, and no FacesMessage added.
jMeter script and screens attached.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
17 years, 11 months
[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-2928) Precedence problem when injecting Hibernate Session into HibernateTransaction
by Sebastian Hennebrueder (JIRA)
Precedence problem when injecting Hibernate Session into HibernateTransaction
-----------------------------------------------------------------------------
Key: JBSEAM-2928
URL: http://jira.jboss.com/jira/browse/JBSEAM-2928
Project: Seam
Issue Type: Bug
Affects Versions: 2.0.1.GA
Environment: Linux, Java 1.5, Hibernate
Reporter: Sebastian Hennebrueder
Hello,
I found a precedence problem and I am not sure is this turns out to be a general problem in a lot of core components (or me not understanding something).
I try to inject the Hibernate session in my components using session as name. @In private Session session
With the following components.xml this leads to a classcastexception when the session is injected in the HibernateTransaction. Seam tries to inject a HTTP Session.
components.xml
<persistence:hibernate-session-factory name="hibernateSessionFactory"/>
<persistence:managed-hibernate-session name="session"
auto-create="true"
session-factory="#{hibernateSessionFactory}"/>
<transaction:hibernate-transaction session="#{session}"/>
In my opinion this is an error as the component is properly created.
A workaround is possible. When injecting the session into the transaction the wrong component (Seam Session) is used.
I created a factory for session.
<factory name="session"
scope="STATELESS"
auto-create="true"
value="#{xsession}"/>
<persistence:managed-hibernate-session name="xsession"
auto-create="true"
session-factory="#{hibernateSessionFactory}"/>
<transaction:hibernate-transaction session="#{xsession}" />
I tried to play with the precedence but this did not help as well.
Best Regards / Viele Grüße
Sebastian Hennebrueder
----- http://www.laliluna.de
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
17 years, 11 months