Repository: logging-log4j2 Updated Branches: refs/heads/release-2.x ce0395761 -> 35f4ed5f7
[LOG4J2-548] Log4j 2.0 ERROR "Could not search jar" with JBoss EAP 6.2. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/35f4ed5f Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/35f4ed5f Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/35f4ed5f Branch: refs/heads/release-2.x Commit: 35f4ed5f7817305a12d3badc311cce810324ecf9 Parents: ce03957 Author: Gary Gregory <bananetom...@hotmail.com> Authored: Tue Apr 17 15:45:40 2018 -0600 Committer: Gary Gregory <garydgreg...@gmail.com> Committed: Tue Apr 17 15:45:40 2018 -0600 ---------------------------------------------------------------------- .../core/config/plugins/util/ResolverUtil.java | 27 ++++++++++++++++---- src/changes/changes.xml | 3 +++ 2 files changed, 25 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/35f4ed5f/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/ResolverUtil.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/ResolverUtil.java b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/ResolverUtil.java index 29fe395..73b5fc0 100644 --- a/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/ResolverUtil.java +++ b/log4j-core/src/main/java/org/apache/logging/log4j/core/config/plugins/util/ResolverUtil.java @@ -19,6 +19,7 @@ package org.apache.logging.log4j.core.config.plugins.util; import java.io.File; import java.io.FileInputStream; import java.io.IOException; +import java.io.InputStream; import java.io.UnsupportedEncodingException; import java.net.URI; import java.net.URISyntaxException; @@ -198,13 +199,29 @@ public class ResolverUtil { close(stream, newURL); } } else if (VFS.equals(url.getProtocol())) { - final String containerPath = urlPath.substring(1, - urlPath.length() - packageName.length() - 2); + final String containerPath = urlPath.substring(1, urlPath.length() - packageName.length() - 2); final File containerFile = new File(containerPath); - if (containerFile.isDirectory()) { - loadImplementationsInDirectory(test, packageName, new File(containerFile, packageName)); + if (containerFile.exists()) { + if (containerFile.isDirectory()) { + loadImplementationsInDirectory(test, packageName, new File(containerFile, packageName)); + } else { + loadImplementationsInJar(test, packageName, containerFile); + } } else { - loadImplementationsInJar(test, packageName, containerFile); + // fallback code for Jboss/Wildfly, if the file couldn't be found + // by loading the path as a file, try to read the jar as a stream + final String path = urlPath.substring(0, urlPath.length() - packageName.length() - 2); + final URL newURL = new URL(url.getProtocol(), url.getHost(), path); + + try (final InputStream is = newURL.openStream()) { + final JarInputStream jarStream; + if (is instanceof JarInputStream) { + jarStream = (JarInputStream) is; + } else { + jarStream = new JarInputStream(is); + } + loadImplementationsInJar(test, packageName, path, jarStream); + } } } else if (BUNDLE_RESOURCE.equals(url.getProtocol())) { loadImplementationsInBundle(test, packageName); http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/35f4ed5f/src/changes/changes.xml ---------------------------------------------------------------------- diff --git a/src/changes/changes.xml b/src/changes/changes.xml index 117d933..5c442e6 100644 --- a/src/changes/changes.xml +++ b/src/changes/changes.xml @@ -52,6 +52,9 @@ <action issue="LOG4J2-2313" dev="ggregory" type="update"> Update LMAX Disruptor from 3.3.7 to 3.4.2. </action> + <action issue="LOG4J2-548" dev="ggregory" type="update" due-to="Shehata, Paresh Varke, Eric Victorson, Martin Laforet"> + Log4j 2.0 ERROR "Could not search jar" with JBoss EAP 6.2. + </action> </release> <release version="2.11.0" date="2018-03-11" description="GA Release 2.11.0"> <action issue="LOG4J2-2104" dev="rgoers" type="fix">