Forum Stats

  • 3,872,915 Users
  • 2,266,490 Discussions
  • 7,911,382 Comments

Discussions

Stackoverflow Error with Internal ADF Library when migrating ADF 12.1.3.0 to 12.2.1.4

Elio Khattar
Elio Khattar Member Posts: 11 Blue Ribbon

We are migrating from ADF/Weblogic 12.1.3.0 to 12.2.1.4

Initially we were using JDEV 12.1.3.0 and Weblogic 12.1.3.0. 

All apps have been migrated to JDEV 12.2.1.4 and Weblogic 12.2.1.4 by following the migration wizard whenever an project is opened with the new jdev version.

In some of our project, an Internal ADF function invoked by the ADF platform itself is performing a non-ending recursive call and causing a stackoverflow error. This is affecting the majoriy of our app pages.


The application code was running perfectly on 12.1.3.0.

The Application consists of a MasterApp (UI Shell) with dynamic areas where the app pages are being displayed. The MasterApp also handles permissions, authentication and app navigation.


Below is the Function Name

oracle.adf.model.bean.DCBeanDataControl.fillAccStrNamesAndRese


Below is an example Stack Trace

java.lang.StackOverflowErrorat weblogic.servlet.internal.ServletRequestImpl$SessionHelper.getSession(ServletRequestImpl.java:2927)

at weblogic.servlet.internal.ServletRequestImpl.getSession(ServletRequestImpl.java:1542)at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:270)at oracle.adf.share.http.HttpSessionScopeAdapter.getSession(HttpSessionScopeAdapter.java:360)at oracle.adf.share.http.HttpSessionScopeAdapter.get(HttpSessionScopeAdapter.java:478)at oracle.jbo.mom.DefinitionManager.getMergeContext(DefinitionManager.java:836)at oracle.jbo.mom.DefinitionManager.getMergeContextTOS(DefinitionManager.java:1034)at oracle.jbo.mom.DefinitionManager.getSessionDefContainer(DefinitionManager.java:3551)at oracle.jbo.mom.DefinitionManager.findLoadedSessionObjectRaw(DefinitionManager.java:5256)at oracle.jbo.mom.DefinitionManager.findLoadedSessionObject(DefinitionManager.java:5269)at oracle.adf.model.bean.DCBeanDataControl.fillAccStrNamesAndReset(DCBeanDataControl.java:2369)at oracle.adf.model.bean.DCBeanDataControl.fillAccStrNamesAndReset(DCBeanDataControl.java:2373)at oracle.adf.model.bean.DCBeanDataControl.fillAccStrNamesAndReset(DCBeanDataControl.java:2373)at oracle.adf.model.bean.DCBeanDataControl.fillAccStrNamesAndReset(DCBeanDataControl.java:2373)at oracle.adf.model.bean.DCBeanDataControl.fillAccStrNamesAndReset(DCBeanDataControl.java:2373)at oracle.adf.model.bean.DCBeanDataControl.fillAccStrNamesAndReset(DCBeanDataControl.java:2373)

etc........


Attached additonal stack traces

((Notifications TF not found errros and stacktraces are to be ingnored, since on this env, we did not install this particular taskflow)


Answers

  • dvohra21
    dvohra21 Member Posts: 14,691 Gold Crown

    A common issue: migrating an application does not migrate the configuration, which needs to be reapplied in the new version.

    All apps have been migrated to JDEV 12.2.1.4 and Weblogic 12.2.1.4 by following the migration wizard whenever an project is opened with the new jdev version.

    Great. All apps migrated ok.

    Caused by: oracle.mds.core.MetadataNotFoundException: MDS-00013: no metadata found for metadata object "/WEB-INF/com/capitalbanker/cgb/notifications/flows/NotificationsBar-tf.xml" 

    MDS-00201: PDocument not found in MetadataStore : [store-type=DefaultMetadataStore app-name=CapitalBankerApp(2.1.5.3) lookup-order=ServletContext,Classpath] 

    After migration, verify that that Application Assembly has all the dependencies selected.

    I

  • Elio Khattar
    Elio Khattar Member Posts: 11 Blue Ribbon

    Hello @dvohra21

    For the NotificationsBar-tf.xml, as mentionned in my intiial post and in the stack traces, pls ignore it.

    My main isssue is this repetitive issue in ADF internal libs (DCBeanDataControl.fillAccStrNamesAndRese causing a stack overflow


    java.lang.StackOverflowError at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.getSession(ServletRequestImpl.java:2927)

    at weblogic.servlet.internal.ServletRequestImpl.getSession(ServletRequestImpl.java:1542)at javax.servlet.http.HttpServletRequestWrapper.getSession(HttpServletRequestWrapper.java:270)at oracle.adf.share.http.HttpSessionScopeAdapter.getSession(HttpSessionScopeAdapter.java:360)at oracle.adf.share.http.HttpSessionScopeAdapter.get(HttpSessionScopeAdapter.java:478)at oracle.jbo.mom.DefinitionManager.getMergeContext(DefinitionManager.java:836)at oracle.jbo.mom.DefinitionManager.getMergeContextTOS(DefinitionManager.java:1034)at oracle.jbo.mom.DefinitionManager.getSessionDefContainer(DefinitionManager.java:3551)at oracle.jbo.mom.DefinitionManager.findLoadedSessionObjectRaw(DefinitionManager.java:5256)at oracle.jbo.mom.DefinitionManager.findLoadedSessionObject(DefinitionManager.java:5269)at oracle.adf.model.bean.DCBeanDataControl.fillAccStrNamesAndReset(DCBeanDataControl.java:2369)at oracle.adf.model.bean.DCBeanDataControl.fillAccStrNamesAndReset(DCBeanDataControl.java:2373)at oracle.adf.model.bean.DCBeanDataControl.fillAccStrNamesAndReset(DCBeanDataControl.java:2373)at oracle.adf.model.bean.DCBeanDataControl.fillAccStrNamesAndReset(DCBeanDataControl.java:2373)at oracle.adf.model.bean.DCBeanDataControl.fillAccStrNamesAndReset(DCBeanDataControl.java:2373)at oracle.adf.model.bean.DCBeanDataControl.fillAccStrNamesAndReset(DCBeanDataControl.java:2373)

    etc........



    D

  • Elio Khattar
    Elio Khattar Member Posts: 11 Blue Ribbon

    hello again @dvohra21

    When you said "A common issue: migrating an application does not migrate the configuration, which needs to be reapplied in the new version."

    Can you elaborate further. What Configurations do you mean?

  • dvohra21
    dvohra21 Member Posts: 14,691 Gold Crown
    edited Jun 25, 2022 10:43PM

    Some dependency is not found:

    Caused By: org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json

    Use Maven and add Jackson dependency:

    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-json-jackson</artifactId>
        <version>${jersey2.version}</version>
    </dependency>
    


    Or add jars separately:


  • Timo Hahn
    Timo Hahn Senior Principal Technical Consultant - Oracle ACE Director Member, Moderator Posts: 38,902 Red Diamond

    Can you provide a reproducible test case built on the HR DB schema?

    I would like to look into this but without a test case, I can't.

    If you can' provide a test case, you should create the taskflow completely from scratch in 12.2.1.4 and see if the issue remains. If not you can compare the two against each other to hopefully find the difference and the reason for this.

    Timo

  • dvohra21
    dvohra21 Member Posts: 14,691 Gold Crown

    Was the application redeployed and the server restarted after adding jars? The jars also need to be installed in the server classpath if a runtime error.

    Also refer https://docs.oracle.com/en/middleware/fusion-middleware/weblogic-server/12.2.1.4/wlprg/classloading.html

  • Elio Khattar
    Elio Khattar Member Posts: 11 Blue Ribbon

    Hello Everyone,

    FYI, We opened a service request with Oracle and they informed us that they are aware of this internal bug and a patch will be delivered within the coming weeks.

    This happens whenever we have a bean that is referencing itself, i.e.

    public class User{

    String fullName;

    User managerUser;

    }

  • dmccabe
    dmccabe Member Posts: 9 Bronze Badge

    @Elio Khattar Glad to hear we are not the only ones struggling with this issue.

    We encountered this issue with two of our applications late last year. One application is using WebLogic and the other is using Glassfish with ADF Essentials. The WebLogic application was a new application and not an upgrade.

    We opened a ticket with Oracle over 4 months ago. We were not the first to do so; apparently someone else had an identical ticket open at the same time. We worked with them to track the issue to a circular reference in a couple of our bean classes that the ADF method wasn't handling properly; basically what they told you.

    They told us a patch would be in the April 2022 ADF BP, but it was not. I hope it will be in the July BP. Did they give you are BUG number to look for in the BP?


    Unfortunately for us, our ADF Essentials application will not be getting that patch because patches are not released for Essentials. I am still trying to determine a way to manually patch Essentials without breaking it. The Oracle support engineer implied it was possible.

  • dvohra21
    dvohra21 Member Posts: 14,691 Gold Crown

    The known issue is

    MessageBodyWriter "Not Found" for Media Type="application/json" While Consuming JAX-RS Services as JSON (Doc ID 2770993.1)

    Which is fixed by adding Jackson jars, without providing the complete solution.