14 Replies Latest reply on May 25, 2015 2:25 PM by aJohny

    Pages in two browser tabs not working well

    2880934

      I need to call the Customer AR page (ArCusOvrPG) from a customized page that I have created as part of a customizes application module integrated with e-business suite. Our users want to see both pages( the customized one and the Customer AR page - ArCusOvrPG) in two separate tabs in the browser. From our customized page I created a link and called the ArCusOvrPG in a new tab. Everything it is working fine, but when the users save some work on the tab containing the ArCusOvrPG and then switch back to the original page (the first tab) and try to perform some action, then a null pointer exception is raised. I cannot change the code of the controller of the customized page because I will loose the functionality of this page. It seems that I have to customize the controller of the ArCusOvrPG page to refresh everything when save is performed on this page. Did somebody encounter this type of problem before?

       

      Thank you.

        • 1. Re: Pages in two browser tabs not working well
          aJohny

          Not really sure what is the customization you have done. Could you please explain a little more on what is the customization you have done ?

           

          Also, when you come back to the Standard Page, what is the error you are getting ? Did you check where is throwing the NullPointer Exception and why ?

           

          Please paste the full error stack.

           

          Cheers

          AJ

          • 2. Re: Pages in two browser tabs not working well
            2880934

            here is the error

            Error Page

            Exception Details.

            oracle.apps.fnd.framework.OAException: java.lang.NullPointerException at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:912) at oracle.apps.fnd.framework.webui.OAPageErrorHandler.prepareException(OAPageErrorHandler.java:1169) at oracle.apps.fnd.framework.webui.OAPageErrorHandler.processErrors(OAPageErrorHandler.java:1435) at oracle.apps.fnd.framework.webui.OAPageBean.processFormRequest(OAPageBean.java:2978) at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1875) at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:543) at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:431) at _OA._jspService(_OA.java:212) at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:59) at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:462) at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:594) at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:518) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64) at oracle.apps.jtf.base.session.ReleaseResFilter.doFilter(ReleaseResFilter.java:26) at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15) at oracle.apps.fnd.security.AppsServletFilter.doFilter(AppsServletFilter.java:318) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621) at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370) at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871) at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453) at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:313) at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:199) at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260) at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303) at java.lang.Thread.run(Thread.java:619) ## Detail 0 ## java.lang.NullPointerException at cmm.oracle.apps.ar.irec.common.webui.TOHChargeCO.processFormRequest(TOHChargeCO.java:114) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:819) at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:385) at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processFormRequest(OAPageLayoutHelper.java:1205) at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processFormRequest(OAPageLayoutBean.java:1579) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:1031) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:997) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:852) at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:385) at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processFormRequest(OAFormBean.java:395) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:1031) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:997) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:852) at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:385) at oracle.apps.fnd.framework.webui.beans.OABodyBean.processFormRequest(OABodyBean.java:363) at oracle.apps.fnd.framework.webui.OAPageBean.processFormRequest(OAPageBean.java:2974) at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1875) at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:543) at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:431) at _OA._jspService(_OA.java:212) at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:59) at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:462) at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:594) at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:518) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64) at oracle.apps.jtf.base.session.ReleaseResFilter.doFilter(ReleaseResFilter.java:26) at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15) at oracle.apps.fnd.security.AppsServletFilter.doFilter(AppsServletFilter.java:318) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621) at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370) at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871) at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453) at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:313) at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:199) at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260) at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303) at java.lang.Thread.run(Thread.java:619) java.lang.NullPointerException at cmm.oracle.apps.ar.irec.common.webui.TOHChargeCO.processFormRequest(TOHChargeCO.java:114) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:819) at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:385) at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processFormRequest(OAPageLayoutHelper.java:1205) at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processFormRequest(OAPageLayoutBean.java:1579) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:1031) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:997) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:852) at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:385) at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processFormRequest(OAFormBean.java:395) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:1031) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:997) at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:852) at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:385) at oracle.apps.fnd.framework.webui.beans.OABodyBean.processFormRequest(OABodyBean.java:363) at oracle.apps.fnd.framework.webui.OAPageBean.processFormRequest(OAPageBean.java:2974) at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1875) at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:543) at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:431) at _OA._jspService(_OA.java:212) at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:59) at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:462) at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:594) at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:518) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:64) at oracle.apps.jtf.base.session.ReleaseResFilter.doFilter(ReleaseResFilter.java:26) at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:15) at oracle.apps.fnd.security.AppsServletFilter.doFilter(AppsServletFilter.java:318) at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:621) at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:370) at com.evermind.server.http.HttpRequestHandler.doProcessRequest(HttpRequestHandler.java:871) at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:453) at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:313) at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:199) at oracle.oc4j.network.ServerSocketReadHandler$SafeRunnable.run(ServerSocketReadHandler.java:260) at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:303) at java.lang.Thread.run(Thread.java:619)

             

             

             

            I have checked my TOHChargeCO.java:114 controller and at line 114 I have the following code:

            String ostRecAmt = trx.getCurrentRow().getAttribute("OutstandingRecAmount").toString();

             

            I don't know what is wrong with this line as this is working fine when I am just in the first tab and perform actions in the same controller. It seems that the attribute "OutstandingRecAmount" is missing.

            • 3. Re: Re: Pages in two browser tabs not working well
              fsl

              Hi,

               

              Could you paste here the code of navigation from the custom page to ArCusOvrPG and vice versa.

              are you retaining AM while navigating away from custom page?


              Also I suggest you to change the code as follows

               

              String ostRecAmt =null;
              if(trx.getCurrentRow().getAttribute("OutstandingRecAmount")!= null)
              {
                   ostRecAmt = trx.getCurrentRow().getAttribute("OutstandingRecAmount").toString();
              
              }
               
              

               

               


              Br, Fsl

              • 4. Re: Pages in two browser tabs not working well
                2880934

                I have a link created on my customized page and the Destination URI is:

                OA.jsp?page=/oracle/apps/ar/cusstd/ovrview/webui/ArCusOvrPG&retainAM=Y&OAHP=AR_CUS_STD_ROOT&OASF=AR_CUS_SRCH&HzPuiPartyId={@PartyTitleId}

                 

                Should I call the page from the controller instead from the Destination URI property?

                 

                From the ArCusOvrPG page I don't have any customization or code added. This page is displayed in the second tab. Should I add some personalization/ customization on this page as well?

                • 5. Re: Pages in two browser tabs not working well
                  fsl

                  Can you try once by not retaining AM.

                  and if this is not working can we call the required VO by extending standard CO and execute once before returning to custom page.

                   

                  Br, fsl

                  • 6. Re: Pages in two browser tabs not working well
                    aJohny

                    A bit of a confusion for me. You said the Standard page gets called in a different browser tab. How is this getting opened i the new tab ? Did you set the target on the link ?

                     

                    Cheers

                    AJ

                    • 7. Re: Pages in two browser tabs not working well
                      2880934

                      Yes, the target of the link is set to "new". The users want to see and operate in two tabs simultaneously.

                      • 8. Re: Pages in two browser tabs not working well
                        aJohny

                        OK. I don't really understand why is this requirement.

                         

                        So, you navigate to your Custom Page, everything works fine, then you click on this link it opens up the Standard page in another tab. So far all good.

                        User does something on the Standard Page and then comes back to the Custom Page, and does some action (What is this action ? any actions ?) , the page (Standard Page) errors. right ?

                         

                        1. After the second tab is opened, if the user tries to do the "some action" in the first tab (without doing anything in the second tab), does the error appear ?

                        2. Can you tell what is the customization you have done on the page ?

                         

                        Also, it looks like both the pages will be dealing with the same set of data, so by the time you come back to first tab, if you are not refreshing the data, it might be a wrong data also. (depends on the change you done in the second tab).

                         

                        Can I suggest something ? Not sure it is feasible in your case or not.

                        Instead of opening the standard page in another tab, why don't you just navigate to the Standard Page from your page ?

                        You could then add a Return Link (Or a button) in the Standard page, when clicked come back to the Custom Page. You could easily add the link/button using personalization in the Standard Page.

                         

                        Only difference in this approach and what happens now is, user has to click on a link/button instead of the browser tab.

                         

                         

                        I have checked my TOHChargeCO.java:114 controller and at line 114 I have the following code:

                        String ostRecAmt = trx.getCurrentRow().getAttribute("OutstandingRecAmount").toString();

                         

                        I don't know what is wrong with this line as this is working fine when I am just in the first tab and perform actions in the same controller. It seems that the attribute "OutstandingRecAmount" is missing

                         

                        You need to add debug message and check whether the error is because attribute value is null or currentRow is returning null ?

                         

                        Cheers

                        AJ

                        • 9. Re: Pages in two browser tabs not working well
                          2880934

                          Your suggestion is very good, actually I have tried to tell the users to have this approach, going back to the original search page. The problem is that my customized application contains many pages, the first page is a general search page, then a result page is called where the user select a line and then a details page is called. My link is created on the second page (the details page) and the users want to see this page when they switch between tabs with the current data populated on this page. I can create a personalized link on the ArCusOvrPG page, but this link would take the user to the first page (the original search page) and they don't want to search again in the customized application. They want to be able to see and perform actions on the second and third page. I think this is a bad requirement but I want to have an opinion from a professional person.

                          • 10. Re: Pages in two browser tabs not working well
                            aJohny

                            Hmm..

                             

                            In your Customized page, are you referring the same standard AM's ?


                            Did you try to debug the standard code and see whether the error is because attribute value is null or currentRow is returning null ?

                             

                            Cheers

                            AJ

                            • 11. Re: Pages in two browser tabs not working well
                              2880934

                              The original page has just one AM. I think the problem appears when the users do actions in the ArCusOvrPG that call other pages then the original AM is lost. When they stay just in  oracle/apps/ar/cusstd/ovrview/webui/ArCusOvrPG then the AM is retained, but when they do actions that call other pages from ArCusOvrPG, then the original AM of the customized page is lost.

                              Do you have any idea how to propagate the original AM in other pages called by ArCusOvrPG? Could this be possible?

                              • 12. Re: Pages in two browser tabs not working well
                                aJohny

                                Lets call the page Custom page and Standard page as you have not give a custom name for the custom page.

                                 

                                My question was are you using the Same Standard AM in the Custom page or you have a Custom AM in the Custom Page ?

                                 

                                Cheers

                                AJ

                                • 13. Re: Pages in two browser tabs not working well
                                  2880934

                                  I have a Custom AM in the custom page.

                                  • 14. Re: Pages in two browser tabs not working well
                                    aJohny

                                    I am not sure whether it will work, but you can give a try.

                                    Set the StandardAM as the AM at the PageLayout of the custom page and set the CustomAM for a region under that.

                                     

                                     

                                    Did you try to debug the standard code and see whether the error is because attribute value is null or currentRow is returning null ?

                                     

                                    Cheers

                                    AJ