13 Replies Latest reply: Jun 27, 2012 11:56 PM by SantoshVaza RSS

    oracle.adf.controller.internal.AdfcIllegalStateException:

    SantoshVaza
      Hi folks,

      jdeveloper 11.1.1.5.0 adfbc

      I having a page fragment within a dynamic region, in that fragment i have a button that opens other page(jspx page within tf) as dialog using 'dialog:xxx' action,
      every thing works fine but sometimes(not frequently) when user returns from opened dialog it gives following exception to user
      <ControllerState> <synchronizeStatePart2> 
      oracle.adf.controller.internal.AdfcIllegalStateException: oracle.adf.controller.ControllerException: ADFC-12000: State ID in request is invalid for the current session.
           at oracle.adfinternal.controller.state.ControllerState.synchronizeStatePart2(ControllerState.java:518)
           at oracle.adfinternal.controller.application.SyncNavigationStateListener.afterPhase(SyncNavigationStateListener.java:48)
           at oracle.adfinternal.controller.lifecycle.ADFLifecycleImpl$PagePhaseListenerWrapper.afterPhase(ADFLifecycleImpl.java:531)
           at oracle.adfinternal.controller.lifecycle.LifecycleImpl.internalDispatchAfterEvent(LifecycleImpl.java:120)
           at oracle.adfinternal.controller.lifecycle.LifecycleImpl.dispatchAfterPagePhaseEvent(LifecycleImpl.java:168)
           at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener$PhaseInvokerImpl.dispatchAfterPagePhaseEvent(ADFPhaseListener.java:131)
           at oracle.adfinternal.controller.faces.lifecycle.ADFPhaseListener.afterPhase(ADFPhaseListener.java:74)
           at oracle.adfinternal.controller.faces.lifecycle.ADFLifecyclePhaseListener.afterPhase(ADFLifecyclePhaseListener.java:53)
           at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:399)
           at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:186)
           at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
           at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
           at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
           at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
           at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
           at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
           at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
           at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
           at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
           at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
           at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at com.adfutils.filter.SessionExpiredFilter.doFilter(SessionExpiredFilter.java:199)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:175)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at nagiworld.net.filters.gzip.GZIPFilter.doFilter(GZIPFilter.java:115)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
           at java.security.AccessController.doPrivileged(Native Method)
           at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
           at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
           at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
           at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
           at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
           at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
           at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
           at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
           at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
           at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
           at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
           at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
           at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
           at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
           at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
      Some times it happens frequently also....
      It is not show stopper bug, but still it feels uncomfortable for users to work with..
      Can any one please give some suggestions for this...


      Thanks & Regards,
      Santosh.
        • 1. Re: oracle.adf.controller.internal.AdfcIllegalStateException:
          Frank Nimphius-Oracle
          Hi,

          have you tried using an inline dialog. Instead of using dialog:<flow> which I doubt is a good idea to use from a page fragment (dynamic region) you would use a task flow call activity as documented here:


          See; 19.2 Running a Bounded Task Flow in a Modal Dialog

          http://docs.oracle.com/cd/E23943_01/web.1111/b31974/taskflows_dialogs.htm#BABEHJFH


          Frank
          • 2. Re: oracle.adf.controller.internal.AdfcIllegalStateException:
            SantoshVaza
            Hi,

            i already tried your suggestion.. and working well..
            have you tried using an inline dialog. Instead of using dialog:<flow> which I doubt is a good idea to use from a page fragment (dynamic region)
            Is this a Bug???


            Regards,
            • 3. Re: oracle.adf.controller.internal.AdfcIllegalStateException:
              SantoshVaza
              Hi Frank,,
              i already tried your suggestion.. and working well..
              sorry.... it didnot solved my issue....
              any one please..
              • 4. Re: oracle.adf.controller.internal.AdfcIllegalStateException:
                SantoshVaza
                Hi All,

                It also gives following exception..
                <RegistrationConfigurator> <handleError> ADF_FACES-60096:Server Exception during PPR, #3
                java.lang.NullPointerException
                     at oracle.adfinternal.controller.application.AdfcDirtyPageHandler.getUncommittedDataWarning(AdfcDirtyPageHandler.java:38)
                     at oracle.adfinternal.view.faces.context.DirtyPageContextImpl$1.invokeContextCallback(DirtyPageContextImpl.java:74)
                     at org.apache.myfaces.trinidad.component.UIXComponentBase.invokeOnComponent(UIXComponentBase.java:1410)
                     at oracle.adf.view.rich.component.rich.RichDocument.invokeOnComponent(RichDocument.java:168)
                     at javax.faces.component.UIComponent.invokeOnComponent(UIComponent.java:720)
                     at javax.faces.component.UIComponentBase.invokeOnComponent(UIComponentBase.java:678)
                     at oracle.adfinternal.view.faces.context.DirtyPageContextImpl.initDirtyPageContext(DirtyPageContextImpl.java:58)
                     at oracle.adfinternal.view.faces.context.RichPhaseListener.beforePhase(RichPhaseListener.java:252)
                     at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:279)
                     at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:186)
                     at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
                     at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
                     at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
                     at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
                     at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
                     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
                     at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:205)
                     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
                     at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
                     at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
                     at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
                     at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
                     at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
                     at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
                     at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
                     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
                     at com.adfutils.filter.SessionExpiredFilter.doFilter(SessionExpiredFilter.java:199)
                     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
                     at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:175)
                     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
                     at nagiworld.net.filters.gzip.GZIPFilter.doFilter(GZIPFilter.java:115)
                     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
                     at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
                     at java.security.AccessController.doPrivileged(Native Method)
                     at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
                     at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
                     at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
                     at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
                     at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
                     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
                     at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:136)
                     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
                     at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
                     at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
                     at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
                     at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
                     at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
                     at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
                     at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
                     at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
                     at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
                     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
                     at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
                • 5. Re: oracle.adf.controller.internal.AdfcIllegalStateException:
                  Sahar Hassan
                  Try removing default OK button of your dialog and handle it programmatically
                  • 6. Re: oracle.adf.controller.internal.AdfcIllegalStateException:
                    SantoshVaza
                    Try removing default OK button of your dialog and handle it programmatically
                    there is no ok button...
                    • 8. Re: oracle.adf.controller.internal.AdfcIllegalStateException:
                      Sahar Hassan
                      http://one-size-doesnt-fit-all.blogspot.in/2011/10/pageflowscope-with-unbounded-task-flows.html
                      • 9. Re: oracle.adf.controller.internal.AdfcIllegalStateException:
                        SantoshVaza
                        quote from article
                        (Side note: Behind the scenes the server is smart enough to check the session parameters against the previous known connection/session to stop intruders impersonating another user's session ... you can test this by >intercepting the next request before it goes out and changing the _adf.ctrl-state parameter before it hits the server. ADF will complain displaying the following error message "ADFC-12000: State ID in request is invalid for the >current session.")
                        But why it is hapenning in my case.....???
                        where i am not opening any new browser tab....
                        • 11. Re: oracle.adf.controller.internal.AdfcIllegalStateException:
                          SantoshVaza
                          Hi All,

                          finally i solved it by having a custom exception handler and supressing this error..
                          have a look !!
                          package beans;
                          
                          import javax.faces.context.FacesContext;
                          import javax.faces.event.PhaseId;
                          
                          import oracle.adf.view.rich.context.ExceptionHandler;
                          
                          public class CAISControllerExceptionHandler extends ExceptionHandler {
                              public CAISControllerExceptionHandler() {
                                  super();
                              }
                          
                              public void handleException(FacesContext facesContext, Throwable throwable, PhaseId phaseId) throws Throwable {
                                  String error_message;
                                  error_message = throwable.getMessage();
                                  if(error_message == null)
                                      return;
                                  //supress exception
                                  //ADFC-12000: State ID in request is invalid for the current session.
                                  //cannot register active data when window has no name
                                  if(error_message.indexOf("ADFC-12000") >= 0 || error_message.indexOf("ADF_FACES-30013") >= 0){
                                      //do nothing
                                  }
                                  else{
                                      throw throwable;
                                  }
                              }
                          }
                          Any suggestions appreciated..

                          Regards
                          • 12. Re: oracle.adf.controller.internal.AdfcIllegalStateException:
                            vinod_t_krishnan
                            is this happening with the ie8 or ie9 compatibility mode?.. if this is related to session timeout did u try increasing the time
                            • 13. Re: oracle.adf.controller.internal.AdfcIllegalStateException:
                              SantoshVaza
                              Hi,

                              As i can easily save the data and do every thing, all row currency is maintained by appln.. So i can guess that session is not getting timedout.