Uploaded image for project: 'MyFaces Trinidad'
  1. MyFaces Trinidad
  2. TRINIDAD-1062

ClassLoader exception when af:forEach is used with CLIENT_STATE_METHOD "all"

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Major
    • Resolution: Fixed
    • 1.2.7-core
    • 1.0.8-core, 1.2.8-core
    • None
    • None

    Description

      To reproduce, set CLIENT_STATE_METHOD to "all", and run a page with af:forEach that performs postback.

      The following exception will be thrown:

      2008-04-21 15:29:37.117
      oracle.classloader.util.AnnotatedClassNotFoundException:

      Missing class: javax.servlet.jsp.jstl.core.IndexedValueExpression

      Dependent class: java.io.ObjectInputStream
      Loader: jre.bootstrap:1.5.0_12
      Code-Source: unknown
      Configuration: jre bootstrap

      This load was initiated at oc4j:11.1.1.0.0 using the Class.forName() method. The missing class is available from the following locations:

      1. Code-Source:
      /C:/JDEVADF_MAIN_GENERIC_080404.1239.4941/lib/java/shared/oracle.jstl/1.2/jstl
      -api-1_2.jar (from <code-source> (ignore manifest Class-Path) in
      /C:/jdevsystem/system11.1.1.0.22.49.41/o.j2ee/embedded-oc4j/config/server.xml)

      This code-source is available in loader oracle.jstl:1.2. This
      shared-library can be made visible to the "oc4j" loader by modifying the boot
      descriptor.

      at oracle.classloader.PolicyClassLoader.handleClassNotFound
      (PolicyClassLoader.java:2176)
      [/C:/JDEVADF_MAIN_GENERIC_080404.1239.4941/j2ee/home/lib/pcl.jar (from system
      property java.class.path), by sun.misc.Launcher$AppClassLoader@20120943]
      at oracle.classloader.PolicyClassLoader.internalLoadClass
      (PolicyClassLoader.java:1729)
      [/C:/JDEVADF_MAIN_GENERIC_080404.1239.4941/j2ee/home/lib/pcl.jar (from system
      property java.class.path), by sun.misc.Launcher$AppClassLoader@20120943]
      at oracle.classloader.PolicyClassLoader.loadClass
      (PolicyClassLoader.java:1685)
      [/C:/JDEVADF_MAIN_GENERIC_080404.1239.4941/j2ee/home/lib/pcl.jar (from system
      property java.class.path), by sun.misc.Launcher$AppClassLoader@20120943]
      at oracle.classloader.PolicyClassLoader.loadClass
      (PolicyClassLoader.java:1670)
      [/C:/JDEVADF_MAIN_GENERIC_080404.1239.4941/j2ee/home/lib/pcl.jar (from system
      property java.class.path), by sun.misc.Launcher$AppClassLoader@20120943]
      at java.lang.ClassLoader.loadClassInternal (ClassLoader.java:319) [jre
      bootstrap, by jre.bootstrap:1.5.0_12]
      at java.lang.Class.forName0 (Native method) [unknown, by unknown]
      at java.lang.Class.forName (Class.java:242) [jre bootstrap, by
      jre.bootstrap:1.5.0_12]
      at java.io.ObjectInputStream.resolveClass (ObjectInputStream.java:585) [jre
      bootstrap, by jre.bootstrap:1.5.0_12]
      at java.io.ObjectInputStream.readNonProxyDesc (ObjectInputStream.java:1544)
      [jre bootstrap, by jre.bootstrap:1.5.0_12]
      at java.io.ObjectInputStream.readClassDesc (ObjectInputStream.java:1466)
      [jre bootstrap, by jre.bootstrap:1.5.0_12]
      at java.io.ObjectInputStream.readOrdinaryObject
      (ObjectInputStream.java:1699) [jre bootstrap, by jre.bootstrap:1.5.0_12]
      at java.io.ObjectInputStream.readObject0 (ObjectInputStream.java:1305) [jre
      bootstrap, by jre.bootstrap:1.5.0_12]
      at java.io.ObjectInputStream.readObject (ObjectInputStream.java:348) [jre
      bootstrap, by jre.bootstrap:1.5.0_12]

      The issue is that ObjectInputStream created by CoreResponseStateManager uses default class loader instead of context class loader.

      Attachments

        1. ObjectInputStream.diff
          2 kB
          Max Starets

        Activity

          People

            Unassigned Unassigned
            mstarets Max Starets
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: