The log4j-api-2.9.1.jar contains classes under the
META-INF directory. These classes cause an exception during
application start.
com.ibm.ws.ecs.internal.scan.context.impl.ScannerContextImpl
scanJAR unable to open input stream for resource
META-INF/versions/9/org/apache/logging/log4j/util/ProcessIdUtil.
class in archive WEB-INF/lib/log4j-api-2.9.1.jar
java.lang.IllegalArgumentException
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
com.ibm.ws.ecs.internal.scan.impl.ClassScanner.scanInputStream(C
lassScanner.java:147)
com.ibm.ws.ecs.internal.scan.impl.ClassScanner.scanInputStream(C
lassScanner.java:124)
com.ibm.ws.ecs.internal.scan.impl.ClassScanner.scanInputStream(C
lassScanner.java:120)
com.ibm.ws.ecs.internal.scan.context.impl.ScannerContextImpl.sca
nJAR(ScannerContextImpl.java:275)
com.ibm.ws.ecs.internal.scan.context.impl.ScannerContextImpl.sca
nJARs(ScannerContextImpl.java:315)
com.ibm.ws.ecs.internal.scan.context.impl.WARScannerContext.scan
Internal(WARScannerContext.java:76)
com.ibm.ws.ecs.internal.scan.context.impl.ScannerContextImpl.sca
n(ScannerContextImpl.java:87)
com.ibm.ws.ecs.internal.scan.impl.ClassScanner.doScan(ClassScann
er.java:90)
com.ibm.ws.ecs.internal.scan.impl.ClassScanner.ensureScan(ClassS
canner.java:111)
com.ibm.ws.ecs.internal.scan.impl.ClassScanner.getAnnotatedPacka
ges(ClassScanner.java:196)
com.ibm.ws.ecs.internal.scan.impl.AnnotationScannerImpl$Annotati
onBucket.getPackageAnnotationTargets(AnnotationScannerImpl.java:
com.ibm.ws.ecs.internal.scan.impl.AnnotationScannerImpl.getPacka
geAnnotationTargets(AnnotationScannerImpl.java:264)
com.ibm.ws.sip.container.annotation.SipModuleAnnotationProcessor
.<init>(SipModuleAnnotationProcessor.java:171)
Local fix
Problem summary
****************************************************************
* USERS AFFECTED: All users of IBM WebSphere Application *
* Server with an application containing *
* log4j-api-2.9.1.jar. *
****************************************************************
* PROBLEM DESCRIPTION: An application containing a JAR file *
* with class files under the META-INF *
* directory causes *
* IllegalArgumentException. *
****************************************************************
* RECOMMENDATION: *
****************************************************************
The JAR file log4j-api-2.9.1.jar (and later versions of the
JAR file)contains classes under the META-INF directory. For
example:
META-
INF\versions\9\org\apache\logging\log4j\util\ProcessIdUtil.
class
This is new to Java 9. Classes which use Java 9 features are
placed under META-INF\versions\9 as a way to provide
backward
compatibility.
Since traditional WebSphere Application Server (V7 thru V9)
does not support Java 9, the application server is not aware
this location for classes. The application server assigns
wrong directory as the root of the Java package. In this
example, the Java package directory of the class should be:
"org\apache\logging\log4j\util", but the
application server is using the package directory
"META-INF\versions\9\org\apache\logging\log4j\util".
When a class under the example directory is scanned for
annotations, the declared package name in the class
(org.apache.logging.log4j.util) does not match the
package directory. This results in an
IllegalArgumentException shown in the SystemOut.log file:
com.ibm.ws.ecs.internal.scan.context.impl.ScannerContextImpl
scanJAR unable to open input stream for resource
META-
INF/versions/9/org/apache/logging/log4j/util/ProcessIdUtil.
class in archive WEB-INF/lib/log4j-api-2.9.1.jar
java.lang.IllegalArgumentException
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
at org.objectweb.asm.ClassReader.<init>(Unknown Source)
com.ibm.ws.ecs.internal.scan.impl.ClassScanner.scanInputStre
lassScanner.java:147)
Problem conclusion
The code has been modified so that it ignores classes with
invalid package names. See also related APARs PI93744 and
PI96826.
The fix for this APAR is currently targeted for inclusion in
fix pack 8.5.5.14 and 9.0.0.7. Please refer to the Recommended
Updates page for delivery information:
http://www.ibm.com/support/docview.wss?rs=180&uid=swg27004980
Temporary fix
Comments
APAR Information
APAR number
PI89708
Reported component name
WEBSPHERE APP S
Reported component ID
5724J0800
Reported release
900
Status
CLOSED PER
PE
NoPE
HIPER
NoHIPER
Special Attention
NoSpecatt / Xsystem
Submitted date
2017-11-01
Closed date
2017-12-14
Last modified date
2018-05-30
APAR is sysrouted FROM one or more of the following:
APAR is sysrouted TO one or more of the following: