[JBoss JIRA] (JBSEAM-5078) Unsynchronized access to conversation entries map
by Vsevolod Golovanov (JIRA)
Vsevolod Golovanov created JBSEAM-5078:
------------------------------------------
Summary: Unsynchronized access to conversation entries map
Key: JBSEAM-5078
URL: https://issues.jboss.org/browse/JBSEAM-5078
Project: Seam 2
Issue Type: Feature Request
Components: Core
Affects Versions: 2.3.0.Final
Reporter: Vsevolod Golovanov
The methods org.jboss.seam.core.ConversationEntries.getConversationEntries() and org.jboss.seam.core.ConversationEntries.getConversationIds() themselves are synchronized, but they still return views of underlying unsynchronized collection, so iterating over such a view could yield ConcurrentModificationException or incorrect results, if the underlying collection is changed at the same time.
Example stack:
2013-01-22 10:29:53,862 ERROR [ContainerBase] Session event listener threw exception
java.util.ConcurrentModificationException
at java.util.HashMap$AbstractMapIterator.checkConcurrentMod(HashMap.java:193)
at java.util.HashMap$AbstractMapIterator.makeNext(HashMap.java:198)
at java.util.HashMap$KeyIterator.next(HashMap.java:271)
at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1017)
at org.jboss.seam.contexts.Lifecycle.endSession(Lifecycle.java:284)
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 10 months
[JBoss JIRA] (JBSEAM-5076) bpm TaskInstancePriorityList NoSuchMethodError: org.hibernate.criterion.Restrictions.eq(Ljava/lang/String; Ljava/lang/Object; )Lorg/hibernate/criterion/SimpleExpression
by Marek Schmidt (JIRA)
Marek Schmidt created JBSEAM-5076:
-------------------------------------
Summary: bpm TaskInstancePriorityList NoSuchMethodError: org.hibernate.criterion.Restrictions.eq(Ljava/lang/String;Ljava/lang/Object;)Lorg/hibernate/criterion/SimpleExpression
Key: JBSEAM-5076
URL: https://issues.jboss.org/browse/JBSEAM-5076
Project: Seam 2
Issue Type: Bug
Components: BPM
Affects Versions: 2.3.0.Final
Environment: Seam 2.3.1-SNAPSHOT, EAP 6.1.0.Alpha1 (AS 7.2.0-prerelease1) (with hibernate 4.2.0.CR1)
Reporter: Marek Schmidt
Assignee: Marek Novotny
The following error occurs in the todo example, after login:
{noformat}
10:38:08,003 SEVERE [javax.enterprise.resource.webcontainer.jsf.application] (http-/127.0.0.1:8080-1) Error Rendering View[/todo.xhtml]: java.lang.RuntimeException: exception invoking: getTaskInstanceList
at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:154) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.Component.callComponentMethod(Component.java:2313) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.Component.unwrap(Component.java:2339) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.Component.getInstance(Component.java:2054) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.Component.getInstance(Component.java:1996) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.Component.getInstance(Component.java:1990) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:55) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:50) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.el.SeamELResolver.resolveBase(SeamELResolver.java:155) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.el.SeamELResolver.getValue(SeamELResolver.java:51) [jboss-seam.jar:2.3.1-SNAPSHOT]
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176) [jsf-impl-2.1.18-jbossorg-1.jar:]
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203) [jsf-impl-2.1.18-jbossorg-1.jar:]
at org.jboss.el.parser.AstIdentifier.getValue(AstIdentifier.java:44) [jboss-el-1.0_02.CR6.jar:1.0_02.CR6]
at org.jboss.el.parser.AstEmpty.getValue(AstEmpty.java:29) [jboss-el-1.0_02.CR6.jar:1.0_02.CR6]
at org.jboss.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186) [jboss-el-1.0_02.CR6.jar:1.0_02.CR6]
at com.sun.faces.facelets.el.TagValueExpression.getValue(TagValueExpression.java:109) [jsf-impl-2.1.18-jbossorg-1.jar:]
at javax.faces.component.ComponentStateHelper.eval(ComponentStateHelper.java:194) [jboss-jsf-api_2.1_spec-2.1.18.Final.jar:2.1.18.Final]
at javax.faces.component.UIComponentBase.isRendered(UIComponentBase.java:419) [jboss-jsf-api_2.1_spec-2.1.18.Final.jar:2.1.18.Final]
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1773) [jboss-jsf-api_2.1_spec-2.1.18.Final.jar:2.1.18.Final]
at javax.faces.render.Renderer.encodeChildren(Renderer.java:168) [jboss-jsf-api_2.1_spec-2.1.18.Final.jar:2.1.18.Final]
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:851) [jboss-jsf-api_2.1_spec-2.1.18.Final.jar:2.1.18.Final]
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1779) [jboss-jsf-api_2.1_spec-2.1.18.Final.jar:2.1.18.Final]
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1782) [jboss-jsf-api_2.1_spec-2.1.18.Final.jar:2.1.18.Final]
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:439) [jsf-impl-2.1.18-jbossorg-1.jar:]
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:124) [jsf-impl-2.1.18-jbossorg-1.jar:]
at org.jboss.seam.jsf.SeamViewHandler.renderView(SeamViewHandler.java:184) [jboss-seam.jar:2.3.1-SNAPSHOT]
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120) [jsf-impl-2.1.18-jbossorg-1.jar:]
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) [jsf-impl-2.1.18-jbossorg-1.jar:]
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:139) [jsf-impl-2.1.18-jbossorg-1.jar:]
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:594) [jboss-jsf-api_2.1_spec-2.1.18.Final.jar:2.1.18.Final]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169) [jboss-as-web-7.2.0.Alpha1-redhat-4.jar:7.2.0.Alpha1-redhat-4]
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920) [jbossweb-7.2.0.Final.jar:7.2.0.Final]
at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_09-icedtea]
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_09-icedtea]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_09-icedtea]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_09-icedtea]
at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_09-icedtea]
at org.jboss.seam.util.Reflections.invoke(Reflections.java:22) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.intercept.RootInvocationContext.proceed(RootInvocationContext.java:32) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:56) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.transaction.RollbackInterceptor.aroundInvoke(RollbackInterceptor.java:28) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.bpm.BusinessProcessInterceptor.aroundInvoke(BusinessProcessInterceptor.java:51) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.transaction.TransactionInterceptor$1.work(TransactionInterceptor.java:97) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.util.Work.workInTransaction(Work.java:61) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.transaction.TransactionInterceptor.aroundInvoke(TransactionInterceptor.java:91) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.core.MethodContextInterceptor.aroundInvoke(MethodContextInterceptor.java:44) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.intercept.SeamInvocationContext.proceed(SeamInvocationContext.java:68) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.intercept.RootInterceptor.invoke(RootInterceptor.java:107) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.intercept.JavaBeanInterceptor.interceptInvocation(JavaBeanInterceptor.java:186) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:104) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.bpm.TaskInstancePriorityList_$$_javassist_seam_3.getTaskInstanceList(TaskInstancePriorityList_$$_javassist_seam_3.java) [jboss-seam.jar:2.3.1-SNAPSHOT]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_09-icedtea]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_09-icedtea]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_09-icedtea]
at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_09-icedtea]
at org.jboss.seam.util.Reflections.invoke(Reflections.java:22) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:144) [jboss-seam.jar:2.3.1-SNAPSHOT]
... 56 more
Caused by: java.lang.NoSuchMethodError: org.hibernate.criterion.Restrictions.eq(Ljava/lang/String;Ljava/lang/Object;)Lorg/hibernate/criterion/SimpleExpression;
at org.jboss.seam.bpm.TaskInstancePriorityList.getTaskInstanceList(TaskInstancePriorityList.java:45) [jboss-seam.jar:2.3.1-SNAPSHOT]
at org.jboss.seam.bpm.TaskInstancePriorityList.getTaskInstanceList(TaskInstancePriorityList.java:38) [jboss-seam.jar:2.3.1-SNAPSHOT]
... 83 more
{noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 10 months
[JBoss JIRA] (JBSEAM-5075) Improve Seam2.3 performance
by Marek Novotny (JIRA)
[ https://issues.jboss.org/browse/JBSEAM-5075?page=com.atlassian.jira.plugi... ]
Marek Novotny updated JBSEAM-5075:
----------------------------------
Comment: was deleted
(was: Graph attached. I'll continue on investigation of mentioned issues. )
> Improve Seam2.3 performance
> ---------------------------
>
> Key: JBSEAM-5075
> URL: https://issues.jboss.org/browse/JBSEAM-5075
> Project: Seam 2
> Issue Type: Enhancement
> Components: Performance and Scalability
> Affects Versions: 2.3.0.Final
> Environment: AS 7.1.3.Final (EAP 6.0.1)
> Reporter: Tomas Remes
>
> I've run several performance (especially load) tests comparing Seam2.3 to Seam2.2. I am using modified numberguess example running on AS 7.1.3.Final (EAP 6.0.1). Major difference between those two versions is that Seam2.2 uses JSF-1.2 (Mojarra-1.2_15-b01-FCS) and Seam2.3 uses JSF-2.1 (Mojarra 2.1.13-jbossorg-1). The tests shows significantly worse results of Seam2.3 release especially in response time values. Literally Seam2.3 reaches only about 50% of response time values in comparison to Seam2.2 version. In other words that is two times worse. Profiling shows following points, which can be IMHO improved:
> 1) Implementation of SeamVieHandler's restoreView method. This method currently allocates approximately 10x times more memory than related one from Seam2.2 (it uses FaceletViewHandler.restoreView). Removing (returning to Seam2.2 implementation) following lines from this method can bring performance improvement (I've already tried that):
> {noformat}
> UIViewRoot viewRoot =viewHandler.restoreView(ctx, viewId);
> if (viewRoot != null)
> {
> viewRoot.setViewId(viewHandler.deriveViewId(ctx,viewId));
> }
> {noformat}
> 2) Implementation of Contexts.isPageContextActive method. This also shows some regression when comparing memory allocation to related methods - ConversationPropagation.restoreConversationId and Manager.restoreConversation. IMHO this can be reimplemented somehow too.
> 3) Implementation of StatusMessages.instance() method. This also brings small regression in memory allocation.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 10 months
[JBoss JIRA] (JBSEAM-5075) Improve Seam2.3 performance
by Marek Novotny (JIRA)
[ https://issues.jboss.org/browse/JBSEAM-5075?page=com.atlassian.jira.plugi... ]
Marek Novotny updated JBSEAM-5075:
----------------------------------
Attachment: (was: Response time)
> Improve Seam2.3 performance
> ---------------------------
>
> Key: JBSEAM-5075
> URL: https://issues.jboss.org/browse/JBSEAM-5075
> Project: Seam 2
> Issue Type: Enhancement
> Components: Performance and Scalability
> Affects Versions: 2.3.0.Final
> Environment: AS 7.1.3.Final (EAP 6.0.1)
> Reporter: Tomas Remes
>
> I've run several performance (especially load) tests comparing Seam2.3 to Seam2.2. I am using modified numberguess example running on AS 7.1.3.Final (EAP 6.0.1). Major difference between those two versions is that Seam2.2 uses JSF-1.2 (Mojarra-1.2_15-b01-FCS) and Seam2.3 uses JSF-2.1 (Mojarra 2.1.13-jbossorg-1). The tests shows significantly worse results of Seam2.3 release especially in response time values. Literally Seam2.3 reaches only about 50% of response time values in comparison to Seam2.2 version. In other words that is two times worse. Profiling shows following points, which can be IMHO improved:
> 1) Implementation of SeamVieHandler's restoreView method. This method currently allocates approximately 10x times more memory than related one from Seam2.2 (it uses FaceletViewHandler.restoreView). Removing (returning to Seam2.2 implementation) following lines from this method can bring performance improvement (I've already tried that):
> {noformat}
> UIViewRoot viewRoot =viewHandler.restoreView(ctx, viewId);
> if (viewRoot != null)
> {
> viewRoot.setViewId(viewHandler.deriveViewId(ctx,viewId));
> }
> {noformat}
> 2) Implementation of Contexts.isPageContextActive method. This also shows some regression when comparing memory allocation to related methods - ConversationPropagation.restoreConversationId and Manager.restoreConversation. IMHO this can be reimplemented somehow too.
> 3) Implementation of StatusMessages.instance() method. This also brings small regression in memory allocation.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
11 years, 10 months