You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by "Mark Struberg (JIRA)" <de...@myfaces.apache.org> on 2010/08/06 16:26:16 UTC

[jira] Created: (EXTCDI-38) @ViewAccessScoped creates new conversation context each time it get's involked via GET

@ViewAccessScoped creates new conversation context each time it get's involked via GET
--------------------------------------------------------------------------------------

                 Key: EXTCDI-38
                 URL: https://issues.apache.org/jira/browse/EXTCDI-38
             Project: MyFaces CODI
          Issue Type: Bug
          Components: JEE-JSF12-Module, JEE-JSF20-Module
    Affects Versions: 1.0.0-SNAPSHOT
            Reporter: Mark Struberg


When a page gets invoked via a direct GET, I get the following Exception pretty quickly while testing with jmeter:

java.lang.RuntimeException: Too many active Windows/Tabs have been opened! Please continue with one of the existing windows or wait up to 60 minutes.
	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.ExceptionUtils.tooManyOpenWindowException(ExceptionUtils.java:28)
	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager.createNewWindowContextId(DefaultWindowContextManager.java:227)
	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager.getCurrentWindowContext(DefaultWindowContextManager.java:207)


My page is a typical search page which is @ViewScoped, so no context handling is needed at all in this case.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (EXTCDI-38) @ViewAccessScoped creates new conversation context each time it get's involked via GET

Posted by "Gerhard Petracek (JIRA)" <de...@myfaces.apache.org>.
     [ https://issues.apache.org/jira/browse/EXTCDI-38?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gerhard Petracek resolved EXTCDI-38.
------------------------------------

    Resolution: Invalid

that's intended - see WindowContextConfig#getMaxWindowContextCount

for your jmeter tests you have to use a custom config or configure it via web.xml (org.apache.myfaces.extensions.cdi.MAX_WINDOW_CONTEXT_COUNT)

maybe we should ignore it in case of ProjectStage#SystemTest and ProjectStage#IntegrationTest

> @ViewAccessScoped creates new conversation context each time it get's involked via GET
> --------------------------------------------------------------------------------------
>
>                 Key: EXTCDI-38
>                 URL: https://issues.apache.org/jira/browse/EXTCDI-38
>             Project: MyFaces CODI
>          Issue Type: Bug
>          Components: JEE-JSF12-Module, JEE-JSF20-Module
>    Affects Versions: 1.0.0-SNAPSHOT
>            Reporter: Mark Struberg
>
> When a page gets invoked via a direct GET, I get the following Exception pretty quickly while testing with jmeter:
> java.lang.RuntimeException: Too many active Windows/Tabs have been opened! Please continue with one of the existing windows or wait up to 60 minutes.
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.ExceptionUtils.tooManyOpenWindowException(ExceptionUtils.java:28)
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager.createNewWindowContextId(DefaultWindowContextManager.java:227)
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager.getCurrentWindowContext(DefaultWindowContextManager.java:207)
> My page is a typical search page which is @ViewScoped, so no context handling is needed at all in this case.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Resolved: (EXTCDI-38) @ViewAccessScoped creates new conversation context each time it get's involked via GET

Posted by "Gerhard Petracek (JIRA)" <de...@myfaces.apache.org>.
     [ https://issues.apache.org/jira/browse/EXTCDI-38?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gerhard Petracek resolved EXTCDI-38.
------------------------------------

    Fix Version/s: 1.0.0-SNAPSHOT
       Resolution: Invalid

the original issue isn't valid. i'll create 2 new jira issues for the last valid comments.

> @ViewAccessScoped creates new conversation context each time it get's involked via GET
> --------------------------------------------------------------------------------------
>
>                 Key: EXTCDI-38
>                 URL: https://issues.apache.org/jira/browse/EXTCDI-38
>             Project: MyFaces CODI
>          Issue Type: Bug
>          Components: JEE-JSF12-Module, JEE-JSF20-Module
>    Affects Versions: 1.0.0-SNAPSHOT
>            Reporter: Mark Struberg
>             Fix For: 1.0.0-SNAPSHOT
>
>
> When a page gets invoked via a direct GET, I get the following Exception pretty quickly while testing with jmeter:
> java.lang.RuntimeException: Too many active Windows/Tabs have been opened! Please continue with one of the existing windows or wait up to 60 minutes.
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.ExceptionUtils.tooManyOpenWindowException(ExceptionUtils.java:28)
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager.createNewWindowContextId(DefaultWindowContextManager.java:227)
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager.getCurrentWindowContext(DefaultWindowContextManager.java:207)
> My page is a typical search page which is @ViewScoped, so no context handling is needed at all in this case.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Issue Comment Edited: (EXTCDI-38) @ViewAccessScoped creates new conversation context each time it get's involked via GET

Posted by "Gerhard Petracek (JIRA)" <de...@myfaces.apache.org>.
    [ https://issues.apache.org/jira/browse/EXTCDI-38?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12896310#action_12896310 ] 

Gerhard Petracek edited comment on EXTCDI-38 at 8/8/10 2:00 AM:
----------------------------------------------------------------

the original issue isn't valid (at least we have to encode action urls -> we need a window context in any case). i'll create 2 new jira issues for the last valid comments.

      was (Author: gpetracek):
    the original issue isn't valid. i'll create 2 new jira issues for the last valid comments.
  
> @ViewAccessScoped creates new conversation context each time it get's involked via GET
> --------------------------------------------------------------------------------------
>
>                 Key: EXTCDI-38
>                 URL: https://issues.apache.org/jira/browse/EXTCDI-38
>             Project: MyFaces CODI
>          Issue Type: Bug
>          Components: JEE-JSF12-Module, JEE-JSF20-Module
>    Affects Versions: 1.0.0-SNAPSHOT
>            Reporter: Mark Struberg
>             Fix For: 1.0.0-SNAPSHOT
>
>
> When a page gets invoked via a direct GET, I get the following Exception pretty quickly while testing with jmeter:
> java.lang.RuntimeException: Too many active Windows/Tabs have been opened! Please continue with one of the existing windows or wait up to 60 minutes.
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.ExceptionUtils.tooManyOpenWindowException(ExceptionUtils.java:28)
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager.createNewWindowContextId(DefaultWindowContextManager.java:227)
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager.getCurrentWindowContext(DefaultWindowContextManager.java:207)
> My page is a typical search page which is @ViewScoped, so no context handling is needed at all in this case.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (EXTCDI-38) @ViewAccessScoped creates new conversation context each time it get's involked via GET

Posted by "Mark Struberg (JIRA)" <de...@myfaces.apache.org>.
    [ https://issues.apache.org/jira/browse/EXTCDI-38?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12896055#action_12896055 ] 

Mark Struberg commented on EXTCDI-38:
-------------------------------------

FYI: the 'old' version in my Nexus from 2010-07-27 doesn't have this problem.

> @ViewAccessScoped creates new conversation context each time it get's involked via GET
> --------------------------------------------------------------------------------------
>
>                 Key: EXTCDI-38
>                 URL: https://issues.apache.org/jira/browse/EXTCDI-38
>             Project: MyFaces CODI
>          Issue Type: Bug
>          Components: JEE-JSF12-Module, JEE-JSF20-Module
>    Affects Versions: 1.0.0-SNAPSHOT
>            Reporter: Mark Struberg
>
> When a page gets invoked via a direct GET, I get the following Exception pretty quickly while testing with jmeter:
> java.lang.RuntimeException: Too many active Windows/Tabs have been opened! Please continue with one of the existing windows or wait up to 60 minutes.
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.ExceptionUtils.tooManyOpenWindowException(ExceptionUtils.java:28)
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager.createNewWindowContextId(DefaultWindowContextManager.java:227)
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager.getCurrentWindowContext(DefaultWindowContextManager.java:207)
> My page is a typical search page which is @ViewScoped, so no context handling is needed at all in this case.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Reopened: (EXTCDI-38) @ViewAccessScoped creates new conversation context each time it get's involked via GET

Posted by "Mark Struberg (JIRA)" <de...@myfaces.apache.org>.
     [ https://issues.apache.org/jira/browse/EXTCDI-38?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Mark Struberg reopened EXTCDI-38:
---------------------------------


The problem here is that my page doesn't have any CODI bean at all.

In this case we will get an 'unused' windowContext at the end of the request. We should be able to clean this up in DefaultWindowContextManager. 

Also I'm not sure if we should really throw an Exception in the case of exceeding the contexts limit. What about wiping out the context which wasn't used for the longest time instead (+ logging a warning)?

> @ViewAccessScoped creates new conversation context each time it get's involked via GET
> --------------------------------------------------------------------------------------
>
>                 Key: EXTCDI-38
>                 URL: https://issues.apache.org/jira/browse/EXTCDI-38
>             Project: MyFaces CODI
>          Issue Type: Bug
>          Components: JEE-JSF12-Module, JEE-JSF20-Module
>    Affects Versions: 1.0.0-SNAPSHOT
>            Reporter: Mark Struberg
>
> When a page gets invoked via a direct GET, I get the following Exception pretty quickly while testing with jmeter:
> java.lang.RuntimeException: Too many active Windows/Tabs have been opened! Please continue with one of the existing windows or wait up to 60 minutes.
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.ExceptionUtils.tooManyOpenWindowException(ExceptionUtils.java:28)
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager.createNewWindowContextId(DefaultWindowContextManager.java:227)
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager.getCurrentWindowContext(DefaultWindowContextManager.java:207)
> My page is a typical search page which is @ViewScoped, so no context handling is needed at all in this case.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (EXTCDI-38) @ViewAccessScoped creates new conversation context each time it get's involked via GET

Posted by "Gerhard Petracek (JIRA)" <de...@myfaces.apache.org>.
    [ https://issues.apache.org/jira/browse/EXTCDI-38?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12896309#action_12896309 ] 

Gerhard Petracek commented on EXTCDI-38:
----------------------------------------

@#1: it isn't a bit difference to the current solution. it looks like you have an use-case which would benefit from your suggestion. i've no objections.
@#2: there isn't a solution which fits all requirements -> i'll introduce a new spi

> @ViewAccessScoped creates new conversation context each time it get's involked via GET
> --------------------------------------------------------------------------------------
>
>                 Key: EXTCDI-38
>                 URL: https://issues.apache.org/jira/browse/EXTCDI-38
>             Project: MyFaces CODI
>          Issue Type: Bug
>          Components: JEE-JSF12-Module, JEE-JSF20-Module
>    Affects Versions: 1.0.0-SNAPSHOT
>            Reporter: Mark Struberg
>
> When a page gets invoked via a direct GET, I get the following Exception pretty quickly while testing with jmeter:
> java.lang.RuntimeException: Too many active Windows/Tabs have been opened! Please continue with one of the existing windows or wait up to 60 minutes.
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.ExceptionUtils.tooManyOpenWindowException(ExceptionUtils.java:28)
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager.createNewWindowContextId(DefaultWindowContextManager.java:227)
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager.getCurrentWindowContext(DefaultWindowContextManager.java:207)
> My page is a typical search page which is @ViewScoped, so no context handling is needed at all in this case.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Commented: (EXTCDI-38) @ViewAccessScoped creates new conversation context each time it get's involked via GET

Posted by "Mark Struberg (JIRA)" <de...@myfaces.apache.org>.
    [ https://issues.apache.org/jira/browse/EXTCDI-38?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12896045#action_12896045 ] 

Mark Struberg commented on EXTCDI-38:
-------------------------------------

here is the full stacktrace. It seems that the DefaultWindowContextManager#cleanup() is a bit too engaged:

java.lang.RuntimeException: Too many active Windows/Tabs have been opened! Please continue with one of the existing windows or wait up to 60 minutes.
	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.ExceptionUtils.tooManyOpenWindowException(ExceptionUtils.java:28)
	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager.createNewWindowContextId(DefaultWindowContextManager.java:227)
	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager.getCurrentWindowContext(DefaultWindowContextManager.java:207)
	at sun.reflect.GeneratedMethodAccessor465.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.webbeans.intercept.InterceptorHandler.invoke(InterceptorHandler.java:283)
	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:98)
	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager_$$_javassist_25.getCurrentWindowContext(DefaultWindowContextManager_$$_javassist_25.java)
	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.ConversationUtils.restoreInformationOfRequest(ConversationUtils.java:263)
	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager.cleanup(DefaultWindowContextManager.java:124)
	at sun.reflect.GeneratedMethodAccessor165.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.webbeans.intercept.InterceptorHandler.invoke(InterceptorHandler.java:283)
	at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:98)
	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager_$$_javassist_25.cleanup(DefaultWindowContextManager_$$_javassist_25.java)
	at sun.reflect.GeneratedMethodAccessor165.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.apache.webbeans.event.ObserverMethodImpl.notify(ObserverMethodImpl.java:256)
	at org.apache.webbeans.event.NotificationManager.fireEvent(NotificationManager.java:441)
	at org.apache.webbeans.container.BeanManagerImpl.fireEvent(BeanManagerImpl.java:401)
	at org.apache.webbeans.event.EventImpl.fire(EventImpl.java:74)
	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.listener.phase.JsfRequestLifecycleBroadcaster.broadcastAfterEvent(JsfRequestLifecycleBroadcaster.java:66)
	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.listener.phase.JsfRequestLifecyclePhaseListener.afterPhase(JsfRequestLifecyclePhaseListener.java:44)
	at org.apache.myfaces.lifecycle.PhaseListenerManager.informPhaseListenersAfter(PhaseListenerManager.java:111)
	at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:185)
	at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:118)
	at org.apache.myfaces.extensions.cdi.javaee.jsf2.impl.listener.phase.CodiLifecycleWrapper.execute(CodiLifecycleWrapper.java:55)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189)


> @ViewAccessScoped creates new conversation context each time it get's involked via GET
> --------------------------------------------------------------------------------------
>
>                 Key: EXTCDI-38
>                 URL: https://issues.apache.org/jira/browse/EXTCDI-38
>             Project: MyFaces CODI
>          Issue Type: Bug
>          Components: JEE-JSF12-Module, JEE-JSF20-Module
>    Affects Versions: 1.0.0-SNAPSHOT
>            Reporter: Mark Struberg
>
> When a page gets invoked via a direct GET, I get the following Exception pretty quickly while testing with jmeter:
> java.lang.RuntimeException: Too many active Windows/Tabs have been opened! Please continue with one of the existing windows or wait up to 60 minutes.
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.util.ExceptionUtils.tooManyOpenWindowException(ExceptionUtils.java:28)
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager.createNewWindowContextId(DefaultWindowContextManager.java:227)
> 	at org.apache.myfaces.extensions.cdi.javaee.jsf.impl.scope.conversation.DefaultWindowContextManager.getCurrentWindowContext(DefaultWindowContextManager.java:207)
> My page is a typical search page which is @ViewScoped, so no context handling is needed at all in this case.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.