Forum Stats

  • 3,875,427 Users
  • 2,266,915 Discussions
  • 7,912,205 Comments

Discussions

How do I fix this ERROR_CREATE_COMPONENT_STALE error please?

DrHoneybear
DrHoneybear Member Posts: 50 Green Ribbon

JDeveloper 12.2.1.3.0 build JDEVADF_12.2.1.PATCHSETS_GENERIC_170820.0914.S

JDK 1.8.0_131

Windows 10


What on earth does this mean and how do i fix please?

####<03-May-2022 08:53:46,326 o'clock BST> <Info> <org.apache.myfaces.trinidad.webapp.UIXComponentELTag> <GLKAS2751> <Engineering> <[ACTIVE] ExecuteThread: '1' for queue: 'weblogic.kernel.Default (self-tuning)'> <W6N4KM1> <> <c47f4c69-58e4-4c3b-9c39-34c223d0d6c1-0000027a> <1651564426326> <[severity-value: 64] [rid: 0] [partition-id: 0] [partition-name: DOMAIN] > <ERROR_CREATE_COMPONENT_STALE> <Detected reuse of component instance with scoped id ":j_id_id32" as it is already attached to the parent with scoped id ":j_id_id5", whereas its expected parent has a scoped id of ":j_id_id6". This error could occur when the component instance was retrieved from the component binding. If it helps the expression set on the binding attribute is "#{backing_GlobalApplication.footer}".> 

I have been asked to take over support of this ADF application which is complex and I know very little about it, or how ADF/Web apps on Fusion, work. Learning all the time and trying to figure out what the error means let alone how to fix it.

«1

Answers

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

    The error message tells you that something is wrong with the EL

    "#{backing_GlobalApplication.footer}"
    

    and the problem seems to be a change in parent parent during runtime. The app stored a link to the component in the backing_GlobalApplication bean. You need to check the scope of this bean and make sure that the bean is in backingBean scope or request scope. Any other scope might get you into this trouble.


    Timo

  • DrHoneybear
    DrHoneybear Member Posts: 50 Green Ribbon
    edited Jun 7, 2022 1:04PM

    Thank you.

    I found the bean file in application navigator under view->src->wdms->GlobalApplication.java - where can I find the scope and it doesn't have the 'backing_' prefix either ??

    I am a novice and learning. The Oracle docs are as many as they are heavy reading. Very confusing.


    EDIT: Found at View->public_html->WEB-INF->Design->design-config.xml

    (whatever that path means)

    But the scope for the managed bean is 'session'?

     <managed-bean>
      <managed-bean-name>backing_GlobalApplication</managed-bean-name>
      <managed-bean-class>wdms.view.GlobalApplication</managed-bean-class>
      <managed-bean-scope>session</managed-bean-scope>
     </managed-bean>
    

    The only values shown in the dropdown list on the 'overview' tab for design-config.xml are:

    • request
    • session
    • application
    • view
    • none

    Should it be set to 'application' perhaps as it is a bean used across the entire application and methods are invoked from all over the view (jspx and phase listener files).

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

    You found a spot for the scope definition. I can't tell if it is the right one.

    Beans can be defined in multiple locations. For ADF the best practice is to define the beans with the taskflows where they are used.

    Anyway, it tells you that the bean is in session scope. This means that the component from the UI is stored in session scope. This will lead to unexpected results. Components from the UI should be bound to beans in a scope backingBeanScope or request scope. The reason is that the pointer to the component lives longer than the component itself. So it happens in your case that you access the component using an old pointer and you get the error.

    You should take a couple of hour and work through some of the materials available at https://www.oracle.com/application-development/technologies/jdeveloper/jdeveloper-reviewrguide.html

    IT will help you understanding the way the framework works and should it make easier to understand the application.


    Timo

  • dvohra21
    dvohra21 Member Posts: 14,692 Gold Crown

    ERROR_CREATE_COMPONENT_STALE> <Detected reuse of component instance with scoped id ":j_id_id32" as it is already attached to the parent with scoped id ":j_id_id5", whereas its expected parent has a scoped id of ":j_id_id6". This error could occur when the component instance was retrieved from the component binding. If it helps the expression set on the binding attribute is "#{backing_GlobalApplication.footer}".> 

    This is a known bug. A component is getting rendered more than once causing the ERROR_CREATE_COMPONENT_STALE error. It could be that the configured timeout is not enough for the component to get rendered after being loaded; the timeout occurs, and the component is rendered later giving the impression that the same component is being rendered again. Increase the timeout settings which might fix.

  • DrHoneybear
    DrHoneybear Member Posts: 50 Green Ribbon
    edited Jun 9, 2022 11:02AM

    Erm, so is it a known bug or a binding/bean scoping problem ? surely cannot be both. If it's a bug is it the scope or the timeout and how would I set the timeout/where - please?

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

    Well, you are the one to find out :)

    I have not seen this error in my applications using the right scopes. I'm not sure it's a bug. Only if dvohra21 can provide the link to the specific bug in MOS I can check.


    Timo

  • dvohra21
    dvohra21 Member Posts: 14,692 Gold Crown

    The application could be running fine when the error message is generated. @Timo Hahn Please refer What is the Meaning of WebLogic Error "ERROR_CREATE_COMPONENT_STALE" Seen in WebLogic Logs? (Doc ID 2328746.1)

  • DrHoneybear
    DrHoneybear Member Posts: 50 Green Ribbon

    @dvohra21 what is that document reference and how might I access to read it please? searched this forum for it and nothing came back other than your post above.

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

    The doc reference is for a document available only in the support section.

    If you don't have a valid support contact you can't read the content and users who do have such an account are not allowed to disclose it's content.


    Timo

  • DrHoneybear
    DrHoneybear Member Posts: 50 Green Ribbon

    Done all you suggested, and , still cannot work out why this error is being generated.


    How do I increase the 'timeout' for this 'known bug' please?