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

Support Patch - EAP 5.2 - Jars not containing directory entries are not properly reinitialized by VFS

    XMLWordPrintable

Details

    • git clone git+ssh://git.app.eng.bos.redhat.com/srv/git/jbossas/jboss-vfs.git; cd jboss-vfs; git checkout 2.2.2.GA
    • Hide
      PATCH NAME:
              JBPAPP-10646
      PRODUCT NAME:
              JBoss Enterprise Application Platform
      VERSION:
              5.2
      SHORT DESCRIPTION:
             If a jar that does not contain directory entries (perhaps it was created with zip -D or --no-dir-entries) is reinitialized by VFS and an attempt is made to access a directory, an exception is thrown.
      LONG DESCRIPTION:
              VFS reinitialization of a jar may occur if the jar is in a directory that is not itself a permanent root or a child of a permanent root (defined in $JBOSS_HOME/server/$CONFIG/conf/bootstrap/vfs.xml). If an attempt is then made to access a directory within the jar that does not contain directory entries, and exception is thrown stating the entry does not exist. This often is seen instigated by facelets code scanning the classpath, in particular after JBossWS-CXF has been installed as that product contains spring-core.jar and asm.jar, both of which do not contain directory entries.
      MANUAL INSTALL INSTRUCTIONS:
              To install this patch replace the following with the jars included in this patch:
                 $JBOSS_HOME/lib/jboss-vfs.jar
      COMPATIBILITY:
              
      DEPENDENCIES:
             none
      SUPERSEDES:
             none
      SUPERSEDED BY:
              none
      CREATOR:
              Chris Sams
      DATE:
              02-19-2013
      Show
      PATCH NAME:          JBPAPP-10646 PRODUCT NAME:         JBoss Enterprise Application Platform VERSION:         5.2 SHORT DESCRIPTION:        If a jar that does not contain directory entries (perhaps it was created with zip -D or --no-dir-entries) is reinitialized by VFS and an attempt is made to access a directory, an exception is thrown. LONG DESCRIPTION:         VFS reinitialization of a jar may occur if the jar is in a directory that is not itself a permanent root or a child of a permanent root (defined in $JBOSS_HOME/server/$CONFIG/conf/bootstrap/vfs.xml). If an attempt is then made to access a directory within the jar that does not contain directory entries, and exception is thrown stating the entry does not exist. This often is seen instigated by facelets code scanning the classpath, in particular after JBossWS-CXF has been installed as that product contains spring-core.jar and asm.jar, both of which do not contain directory entries. MANUAL INSTALL INSTRUCTIONS:         To install this patch replace the following with the jars included in this patch:            $JBOSS_HOME/lib/jboss-vfs.jar COMPATIBILITY:          DEPENDENCIES:        none SUPERSEDES:        none SUPERSEDED BY:         none CREATOR:         Chris Sams DATE:         02-19-2013
    • NEW

    Description

      If a jar that does not contain directory entries (perhaps it was created with zip -D or --no-dir-entries) is reinitialized by VFS and an attempt is made to access a directory, an exception is thrown:

      java.lang.RuntimeException: Failed to initialize ZipWrapper: /apps/barc-middleware/applications/jboss-as/servers/myserver/deployers/jbossws.deployer/spring-core.jar/META-INF/
      at org.jboss.virtual.plugins.context.zip.ZipEntryContext.getZipSource(ZipEntryContext.java:286)
      at org.jboss.virtual.plugins.context.zip.ZipEntryContext.ensureEntries(ZipEntryContext.java:638)
      at org.jboss.virtual.plugins.context.zip.ZipEntryContext.checkIfModified(ZipEntryContext.java:786)
      at org.jboss.virtual.plugins.context.zip.ZipEntryContext.getChildren(ZipEntryContext.java:858)
      at org.jboss.virtual.plugins.context.AbstractVFSContext.visit(AbstractVFSContext.java:337)
      at org.jboss.virtual.plugins.context.AbstractVFSContext.visit(AbstractVFSContext.java:307)
      at org.jboss.virtual.VFS.visit(VFS.java:468)
      at org.jboss.virtual.VirtualFile.visit(VirtualFile.java:448)

      This is often seen instigated by classpath scanning facelets code in conjunction with installation of JBossWS-CXF in EAP 5.1.2. JBossWS-CXF contains spring-core.jar and asm.jar, neither of which contain directory entries. If using the EAP Admin Console, the login page may seem corrupted, and the server log may contain an exception similar to above.

      The unit test for this issue is in ./test/java/org/jboss/test/virtual/test/ScanMetaInfTestCase.java

      Attachments

        Issue Links

          Activity

            People

              jbn-patch-team JBN Patch Team list
              rhn-support-csams Christopher Sams
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: