Uploaded image for project: 'JBoss Enterprise Application Platform 4 and 5'
  1. JBoss Enterprise Application Platform 4 and 5
  2. JBPAPP-1441

JAXB - $JAXBAccessorF_ and $JAXBAccessorM_ cache loosing classes and failing to re-create classes.

XMLWordPrintable

    • Icon: Support Patch Support Patch
    • Resolution: Done
    • Icon: Major Major
    • One Off Releases
    • 4.3.0.GA_CP02
    • Web Services
    • None
    • Thirdparty library so no source code control.
    • Hide
      PATCH NAME:
              JBPAPP-1441
      PRODUCT NAME:
              JBoss EAP
      VERSION:
              4.3.0.GA_CP02
      SHORT DESCRIPTION:
              The Sun JAXB implementation dynamically generates classes to avoid the need for reflection,
              the implementation uses a WeakHashMap and incorrectly uses a WeakReference that means even
              though the class has been created it is lost and not used.
      LONG DESCRIPTION:
              The upstream bug has been raised here: -
                https://jaxb.dev.java.net/issues/show_bug.cgi?id=564

              When verbose logging of classloading is enabled we see the same $JAXBAccessorF_ and $JAXBAccessorM_
              classes being created multiple times as the WeakReference in the cache keeps getting cleared.

              However as the classes had been defined once before the classloader rejects the subsequent definition
              and the class is not created again, as the original reference is lost and the class can not be re-defined
              this optimisation is not used.
      MANUAL INSTALL INSTRUCTIONS:
              Replace the jaxb-impl.jar in the following two locations: -
                {jboss.home}/client/jaxb-impl.jar
                {jboss.home}/server/{configuration}/deploy/jbossws.sar/jaxb-impl.jar
      COMPATIBILITY:
              None
      DEPENDENCIES:
              JBoss EAP 4.3.0.GA_CP02
      SUPERSEDES:
              None
      SUPERSEDED BY:
              JBoss EAP 4.3.0.GA_CP04
      CREATOR:
              Darran Lofthouse
      DATE:
              21st November 2008


      Show
      PATCH NAME:          JBPAPP-1441 PRODUCT NAME:         JBoss EAP VERSION:         4.3.0.GA_CP02 SHORT DESCRIPTION:         The Sun JAXB implementation dynamically generates classes to avoid the need for reflection,         the implementation uses a WeakHashMap and incorrectly uses a WeakReference that means even         though the class has been created it is lost and not used. LONG DESCRIPTION:         The upstream bug has been raised here: -            https://jaxb.dev.java.net/issues/show_bug.cgi?id=564         When verbose logging of classloading is enabled we see the same $JAXBAccessorF_ and $JAXBAccessorM_         classes being created multiple times as the WeakReference in the cache keeps getting cleared.         However as the classes had been defined once before the classloader rejects the subsequent definition         and the class is not created again, as the original reference is lost and the class can not be re-defined         this optimisation is not used. MANUAL INSTALL INSTRUCTIONS:         Replace the jaxb-impl.jar in the following two locations: -           {jboss.home}/client/jaxb-impl.jar           {jboss.home}/server/{configuration}/deploy/jbossws.sar/jaxb-impl.jar COMPATIBILITY:         None DEPENDENCIES:         JBoss EAP 4.3.0.GA_CP02 SUPERSEDES:         None SUPERSEDED BY:         JBoss EAP 4.3.0.GA_CP04 CREATOR:         Darran Lofthouse DATE:         21st November 2008

      This issue is related to the generic generation of classes with JAXB - for a further details see JBWS-2317.

        1. Injector.java
          8 kB
          Darran Lofthouse
        2. JBPAPP-1441.patch
          3 kB
          Darran Lofthouse

              jbn-patch-team JBN Patch Team list
              darran.lofthouse@redhat.com Darran Lofthouse
              Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

                Created:
                Updated:
                Resolved: