[jbossseam-issues] [JBoss JIRA] Created: (JBSEAM-4420) Restrictions not called after restoreViewPhase

Bernard Labno (JIRA) jira-events at lists.jboss.org
Mon Sep 21 13:19:49 EDT 2009


Restrictions not called after restoreViewPhase
----------------------------------------------

                 Key: JBSEAM-4420
                 URL: https://jira.jboss.org/jira/browse/JBSEAM-4420
             Project: Seam
          Issue Type: Bug
          Components: Test Harness
    Affects Versions: 2.2.0.GA, 2.1.1.GA
         Environment: jboss 4.2.2.GA
            Reporter: Bernard Labno


In restoreViewPhase() method of AbstractSeamTest.Request following method is called to early "facesContext.renderResponse();". It is too early, because page restrictions are not being processed i afterPhase.
Take a look at Pages.postRestore(FacesContext) : 

if ( !facesContext.getRenderResponse() ) {page.postRestore(facesContext);}

page restrictions are processed in method "page.postRestore(facesContext)". 

The problem is that if we have page parameter that should be put into bean with restriction than we will get following stacktrace, user will not be able to catch this and problems with transactions will appear in further test methods :

WARN  [org.jboss.seam.jsf.SeamPhaseListener] uncaught exception, passing to exception handler
org.jboss.seam.InstantiationException: Could not instantiate Seam component: tagHome
	at org.jboss.seam.Component.newInstance(Component.java:2106)
	at org.jboss.seam.Component.getInstance(Component.java:1988)
	at org.jboss.seam.Component.getInstance(Component.java:1950)
	at org.jboss.seam.Component.getInstance(Component.java:1944)
	at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:55)
	at org.jboss.seam.Namespace.getComponentInstance(Namespace.java:50)
	at org.jboss.seam.el.SeamELResolver.resolveBase(SeamELResolver.java:166)
	at org.jboss.seam.el.SeamELResolver.getValue(SeamELResolver.java:53)
	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:143)
	at org.jboss.seam.core.Validators$ValidatingResolver.getValue(Validators.java:172)
	at org.jboss.el.parser.AstIdentifier.getValue(AstIdentifier.java:44)
	at org.jboss.el.parser.AstValue.getTarget(AstValue.java:34)
	at org.jboss.el.parser.AstValue.setValue(AstValue.java:83)
	at org.jboss.el.ValueExpressionImpl.setValue(ValueExpressionImpl.java:249)
	at org.jboss.seam.core.Validators.validate(Validators.java:132)
	at org.jboss.seam.navigation.Param.validateConvertedValue(Param.java:243)
	at org.jboss.seam.navigation.Pages.convertAndValidateStringValuesInPageContext(Pages.java:818)
	at org.jboss.seam.navigation.Pages.postRestore(Pages.java:450)
	at org.jboss.seam.jsf.SeamPhaseListener.postRestorePage(SeamPhaseListener.java:546)
	at org.jboss.seam.jsf.SeamPhaseListener.afterRestoreView(SeamPhaseListener.java:392)
	at org.jboss.seam.jsf.SeamPhaseListener.afterServletPhase(SeamPhaseListener.java:228)
	at org.jboss.seam.jsf.SeamPhaseListener.afterPhase(SeamPhaseListener.java:194)
	at org.jboss.seam.mock.AbstractSeamTest$Request.restoreViewPhase(AbstractSeamTest.java:756)
	at org.jboss.seam.mock.AbstractSeamTest$Request.emulateJsfLifecycle(AbstractSeamTest.java:583)
	at org.jboss.seam.mock.AbstractSeamTest$Request.access$300(AbstractSeamTest.java:177)
	at org.jboss.seam.mock.AbstractSeamTest$Request$2.doFilter(AbstractSeamTest.java:497)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:83)
	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.web.IdentityFilter.doFilter(IdentityFilter.java:40)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.jboss.seam.web.MultipartFilter.doFilter(MultipartFilter.java:90)
	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.jboss.seam.web.HotDeployFilter.doFilter(HotDeployFilter.java:53)
	at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69)
	at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)
	at org.jboss.seam.mock.AbstractSeamTest$Request.run(AbstractSeamTest.java:491)
	xxx
	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:597)
	at org.testng.internal.MethodHelper.invokeMethod(MethodHelper.java:607)
	at org.testng.internal.Invoker.invokeMethod(Invoker.java:517)
	at org.testng.internal.Invoker.invokeTestMethod(Invoker.java:669)
	at org.testng.internal.Invoker.invokeTestMethods(Invoker.java:956)
	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:126)
	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:110)
	at org.testng.TestRunner.runWorkers(TestRunner.java:759)
	at org.testng.TestRunner.privateRun(TestRunner.java:592)
	at org.testng.TestRunner.run(TestRunner.java:486)
	at org.testng.SuiteRunner.runTest(SuiteRunner.java:332)
	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:327)
	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:299)
	at org.testng.SuiteRunner.run(SuiteRunner.java:204)
	at org.testng.TestNG.createAndRunSuiteRunners(TestNG.java:867)
	at org.testng.TestNG.runSuitesLocally(TestNG.java:832)
	at org.testng.TestNG.run(TestNG.java:748)
	at org.testng.remote.RemoteTestNG.run(RemoteTestNG.java:73)
	at org.testng.remote.RemoteTestNG.main(RemoteTestNG.java:124)
Caused by: org.jboss.seam.security.AuthorizationException: Authorization check failed for expression [#{s:hasRole('ADMIN')}]
	at org.jboss.seam.security.Identity.checkRestriction(Identity.java:222)
	at org.jboss.seam.security.SecurityInterceptor$Restriction.check(SecurityInterceptor.java:113)
	at org.jboss.seam.security.SecurityInterceptor.aroundInvoke(SecurityInterceptor.java:159)
	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:185)
	at org.jboss.seam.intercept.JavaBeanInterceptor.invoke(JavaBeanInterceptor.java:103)
	xxx
	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:597)
	at org.jboss.seam.util.Reflections.invoke(Reflections.java:22)
	at org.jboss.seam.util.Reflections.invokeAndWrap(Reflections.java:144)
	at org.jboss.seam.Component.callComponentMethod(Component.java:2211)
	at org.jboss.seam.Component.callCreateMethod(Component.java:2134)
	at org.jboss.seam.Component.newInstance(Component.java:2094)
	... 64 more




-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the seam-issues mailing list