3 Replies Latest reply: Oct 8, 2012 10:38 AM by 829807 RSS

    Issue with nested inline popup taskflow while try to return back to parent.

    873821
      Hi Adf Experts,

      I have been facing one issue. Would you please give me how can I solve this issue which address my scenario. I greatly appreciate your help.

      My Scenario:
      I have ViewA which opens inline popup page ViewB. On ViewB also have another inline PopUp page ViewC (i.e. nested inline popup). On ViewB, there is back button which taskFlow return call and navigate back to ViewA. I need to implement same Back trigger event from ViewC (Back Button)to ViewA. For this, I am using ReturnListener on ViewB button which opens ViewC inline page. On returnListener, I have used ViewB back button ActionEvent queue. like:
           RichCommandButton buttonBack;
           public void onReturn( ReturnEvent returnEvent )
           {
                ActionEvent ae = new ActionEvent(buttonBack);
                buttonBack.queueEvent( ae );
           }
      Output Scenario:
      While running from ViewB, it fires same Back Button action from ViewC back button. No issue at all.
      But when I run from ViewA upto ViewC page and on fire back button, I have been facing issue like below.




      <LifecycleImpl> <_handleException> ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase INVOKE_APPLICATION 5
      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)
      ......
      .....


      <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:278)
           at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:185)
           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)
      ............
      ...........
        • 1. Re: Issue with nested inline popup taskflow while try to return back to parent.
          786895
          Hi,

          I have a similar issue.

          I have a page (search page) from where i open another dynamic tab(UI dynamic tab shell pattern).

          In this second tab, I open a new jspx using "dialog:open" in my taskflow (of the second tab).

          Now when I navigate to my first tab with advanced search and try executing my search, a managed bean method is called where I have a line of code as follows:

          DCIteratorBinding statusIter = (DCIteratorBinding)getBindings().get("myIterator");

          At this line the statusIter comes as "null" and hence my search fails with the following exception:

          <LifecycleImpl> <_handleException> ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase INVOKE_APPLICATION 5
          javax.faces.el.EvaluationException: java.lang.NullPointerException
               at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:58)
               at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcastToMethodBinding(UIXComponentBase.java:1256)
               at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:183)
               at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:148)
               at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:102)
               at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:92)
               at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:361)
               at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:96)
               at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:96)
               at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.broadcastEvents(LifecycleImpl.java:879)
               at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:312)
               at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:185)
               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 oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:175)
               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:207)
               at weblogic.work.ExecuteThread.run(ExecuteThread.java:176)
          Caused by: java.lang.NullPointerException
               at com.guycarp.soa.mf.ui.bean.MessageTrackingListBean.createAndExecuteMessageTrackingSearchCriteria(MessageTrackingListBean.java:228)
               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 com.sun.el.parser.AstValue.invoke(Unknown Source)
               at com.sun.el.MethodExpressionImpl.invoke(Unknown Source)
               at org.apache.myfaces.trinidadinternal.taglib.util.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:53)
               ... 50 more
          <RegistrationConfigurator> <handleError> ADF_FACES-60096:Server Exception during PPR, #3
          javax.servlet.ServletException
               at javax.faces.webapp.FacesServlet.service(FacesServlet.java:277)
               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)

          Is there any specific setting which should be done in a taskflow or a page which opens another page using dialog:openwindow?? And why does this effect any other taskflow?

          Any pointers to resolve this are appreciated.

          Thanks in Advance!
          -Swapna
          • 2. Re: Issue with nested inline popup taskflow while try to return back to parent.
            786895
            I resolved the issue.

            The issue was the way that I was getting the bindings using getBindings().

            Until now the getBindings() method was part of my pageFlowScope bean for the first tab.

            When I moved this getBindings() method to a ADFUtil class and in the pageFlowScope bean, now I do ADFUtil.getBindings() it fetches all the iterators associated with the page fine.

            I think the scope in which we get the bindings of a page make a huge difference.

            Thanks
            Swapna

            Edited by: 783892 on Nov 18, 2011 1:28 PM
            • 3. Re: Issue with nested inline popup taskflow while try to return back to parent.
              829807
              Hi All,

              I am getting the same error.

              In my ADFUtils.java I have added this:-

              private static BindingContainer bindings;

              public static void setBindings(BindingContainer bindings) {
              ADFUtils.bindings = bindings;
              }

              public static BindingContainer getBindings() {
              if (ADFUtils.bindings == null) {
              FacesContext fc = FacesContext.getCurrentInstance();
              ADFUtils.bindings = (BindingContainer)fc.getApplication().evaluateExpressionGet(fc,"#{bindings}",BindingContainer.class);
              }
              return ADFUtils.bindings;
              }


              and for getting the bindings I am calling ADFUtils.getBindings() method from my managed bean as specified by user 783892.

              I am getting following error.

              [WARNING] [] [oracle.adfinternal.view.faces.lifecycle.LifecycleImpl] [tid: [ACTIVE].ExecuteThread: '5' for queue: 'weblogic.kernel.Default (self-tuning)'] [userId: ***********] [ecid: eba90376339f6689:66824b07:13a40c82082:-8000-000000000000465b,0] [APP:************] ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase INVOKE_APPLICATION 5[[
              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 oracle.bpel.services.workflow.client.worklist.util.WorkflowFilter.doFilter(WorkflowFilter.java:205)
                   at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
                   at oracle.bpel.services.workflow.client.worklist.util.DisableUrlSessionFilter.doFilter(DisableUrlSessionFilter.java:70)
                   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 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)



              Please help.


              Thanks