diff -Nru jboss-logmanager-2.1.14/debian/changelog jboss-logmanager-2.1.15/debian/changelog --- jboss-logmanager-2.1.14/debian/changelog 2019-08-11 22:38:40.000000000 +0000 +++ jboss-logmanager-2.1.15/debian/changelog 2020-04-25 23:08:08.000000000 +0000 @@ -1,3 +1,10 @@ +jboss-logmanager (2.1.15-1) unstable; urgency=medium + + * New upstream version 2.1.15. + * Declare compliance with Debian Policy 4.5.0. + + -- Markus Koschany Sun, 26 Apr 2020 01:08:08 +0200 + jboss-logmanager (2.1.14-1) unstable; urgency=medium * New upstream version 2.1.14. diff -Nru jboss-logmanager-2.1.14/debian/control jboss-logmanager-2.1.15/debian/control --- jboss-logmanager-2.1.14/debian/control 2019-08-11 22:38:40.000000000 +0000 +++ jboss-logmanager-2.1.15/debian/control 2020-04-25 23:08:08.000000000 +0000 @@ -18,7 +18,7 @@ libmaven-source-plugin-java, libwildfly-common-java, maven-debian-helper (>= 1.5) -Standards-Version: 4.4.0 +Standards-Version: 4.5.0 Vcs-Git: https://salsa.debian.org/java-team/jboss-logmanager.git Vcs-Browser: https://salsa.debian.org/java-team/jboss-logmanager Homepage: https://github.com/jboss-logging/jboss-logmanager diff -Nru jboss-logmanager-2.1.14/debian/copyright jboss-logmanager-2.1.15/debian/copyright --- jboss-logmanager-2.1.14/debian/copyright 2019-08-11 22:38:40.000000000 +0000 +++ jboss-logmanager-2.1.15/debian/copyright 2020-04-25 23:08:08.000000000 +0000 @@ -3,11 +3,11 @@ Source: https://github.com/jboss-logging/jboss-logmanager Files: * -Copyright: 2014-2019, Red Hat, Inc. +Copyright: 2014-2020, Red Hat, Inc. License: Apache-2.0 Files: debian/* -Copyright: 2015-2019, Markus Koschany +Copyright: 2015-2020, Markus Koschany License: Apache-2.0 License: Apache-2.0 diff -Nru jboss-logmanager-2.1.14/.github/workflows/maven.yml jboss-logmanager-2.1.15/.github/workflows/maven.yml --- jboss-logmanager-2.1.14/.github/workflows/maven.yml 1970-01-01 00:00:00.000000000 +0000 +++ jboss-logmanager-2.1.15/.github/workflows/maven.yml 2020-04-16 17:48:53.000000000 +0000 @@ -0,0 +1,41 @@ +# This workflow will build a Java project with Maven +# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven + +name: Java CI with Maven + +on: + push: + branches: [ '**' ] + pull_request: + branches: [ '**' ] + +jobs: + build: + + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, windows-latest ] + + steps: + - uses: actions/checkout@v2 + - uses: actions/cache@v1 + with: + path: ~/.m2/repository + key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-maven- + - name: Set up JDK 1.8 + uses: actions/setup-java@v1 + with: + java-version: 1.8 + - name: Set up JDK 11 + uses: actions/setup-java@v1 + with: + java-version: 11 + - name: Build with Maven Linux + if: runner.os == 'Linux' + run: mvn verify -Djava8.home=$JAVA_HOME_8_X64 + - name: Build with Maven Windows + if: runner.os == 'Windows' + run: mvn verify '-Djava8.home="%JAVA_HOME_8_X64%"' diff -Nru jboss-logmanager-2.1.14/pom.xml jboss-logmanager-2.1.15/pom.xml --- jboss-logmanager-2.1.14/pom.xml 2019-08-07 14:39:45.000000000 +0000 +++ jboss-logmanager-2.1.15/pom.xml 2020-04-16 17:48:53.000000000 +0000 @@ -28,7 +28,7 @@ org.jboss.logmanager jboss-logmanager jar - 2.1.14.Final + 2.1.15.Final org.jboss diff -Nru jboss-logmanager-2.1.14/src/main/java/org/jboss/logmanager/ClassLoaderLogContextSelector.java jboss-logmanager-2.1.15/src/main/java/org/jboss/logmanager/ClassLoaderLogContextSelector.java --- jboss-logmanager-2.1.14/src/main/java/org/jboss/logmanager/ClassLoaderLogContextSelector.java 2019-08-07 14:39:45.000000000 +0000 +++ jboss-logmanager-2.1.15/src/main/java/org/jboss/logmanager/ClassLoaderLogContextSelector.java 2020-04-16 17:48:53.000000000 +0000 @@ -20,12 +20,12 @@ package org.jboss.logmanager; import java.security.AccessController; -import java.security.PrivilegedAction; import java.security.Permission; -import java.util.Collection; +import java.security.PrivilegedAction; import java.util.Collections; import java.util.Set; import java.util.concurrent.ConcurrentMap; +import java.util.function.Function; /** * A log context selector which chooses a log context based on the caller's classloader. @@ -88,31 +88,32 @@ private final Set logApiClassLoaders = Collections.newSetFromMap(new CopyOnWriteMap()); private final boolean checkParentClassLoaders; - private final PrivilegedAction logContextAction = new PrivilegedAction() { - public LogContext run() { - final Collection> callingClasses = JDKSpecific.findCallingClasses(logApiClassLoaders); - for (Class caller : callingClasses) { - final LogContext result = check(caller.getClassLoader()); - if (result != null) { - return result; - } - } - return defaultSelector.getLogContext(); - } + private final Function logContextFinder = new Function() { + @Override + public LogContext apply(final ClassLoader classLoader) { - private LogContext check(final ClassLoader classLoader) { final LogContext context = contextMap.get(classLoader); if (context != null) { return context; } final ClassLoader parent = classLoader.getParent(); - if (parent != null && checkParentClassLoaders && ! logApiClassLoaders.contains(parent)) { - return check(parent); + if (parent != null && checkParentClassLoaders && !logApiClassLoaders.contains(parent)) { + return apply(parent); } return null; } }; + private final PrivilegedAction logContextAction = new PrivilegedAction() { + public LogContext run() { + final LogContext result = JDKSpecific.logContextFinder(logApiClassLoaders, logContextFinder); + if (result != null) { + return result; + } + return defaultSelector.getLogContext(); + } + }; + /** * {@inheritDoc} This instance will consult the call stack to see if any calling classloader is associated * with any log context. diff -Nru jboss-logmanager-2.1.14/src/main/java/org/jboss/logmanager/JDKSpecific.java jboss-logmanager-2.1.15/src/main/java/org/jboss/logmanager/JDKSpecific.java --- jboss-logmanager-2.1.14/src/main/java/org/jboss/logmanager/JDKSpecific.java 2019-08-07 14:39:45.000000000 +0000 +++ jboss-logmanager-2.1.15/src/main/java/org/jboss/logmanager/JDKSpecific.java 2020-04-16 17:48:53.000000000 +0000 @@ -21,9 +21,8 @@ import java.security.AccessController; import java.security.PrivilegedAction; -import java.util.Collection; -import java.util.LinkedHashSet; import java.util.Set; +import java.util.function.Function; import org.jboss.modules.Module; import org.jboss.modules.Version; @@ -69,15 +68,17 @@ return null; } - static Collection> findCallingClasses(Set rejectClassLoaders) { - final Collection> result = new LinkedHashSet<>(); + static LogContext logContextFinder(Set rejectClassLoaders, final Function finder) { for (Class caller : GATEWAY.getClassContext()) { final ClassLoader classLoader = caller.getClassLoader(); if (classLoader != null && !rejectClassLoaders.contains(classLoader)) { - result.add(caller); + final LogContext result = finder.apply(classLoader); + if (result != null) { + return result; + } } } - return result; + return null; } static void calculateCaller(ExtLogRecord logRecord) { diff -Nru jboss-logmanager-2.1.14/src/main/java/org/jboss/logmanager/LogContext.java jboss-logmanager-2.1.15/src/main/java/org/jboss/logmanager/LogContext.java --- jboss-logmanager-2.1.14/src/main/java/org/jboss/logmanager/LogContext.java 2019-08-07 14:39:45.000000000 +0000 +++ jboss-logmanager-2.1.15/src/main/java/org/jboss/logmanager/LogContext.java 2020-04-16 17:48:53.000000000 +0000 @@ -422,6 +422,10 @@ * @param closeHandler the close handler to use */ public void addCloseHandler(final AutoCloseable closeHandler) { + final SecurityManager sm = System.getSecurityManager(); + if (sm != null) { + sm.checkPermission(CONTROL_PERMISSION); + } synchronized (treeLock) { closeHandlers.add(closeHandler); } @@ -449,6 +453,10 @@ * @param closeHandlers the close handlers to use */ public void setCloseHandlers(final Collection closeHandlers) { + final SecurityManager sm = System.getSecurityManager(); + if (sm != null) { + sm.checkPermission(CONTROL_PERMISSION); + } synchronized (treeLock) { this.closeHandlers.clear(); this.closeHandlers.addAll(closeHandlers); diff -Nru jboss-logmanager-2.1.14/src/main/java/org/jboss/logmanager/Logger.java jboss-logmanager-2.1.15/src/main/java/org/jboss/logmanager/Logger.java --- jboss-logmanager-2.1.14/src/main/java/org/jboss/logmanager/Logger.java 2019-08-07 14:39:45.000000000 +0000 +++ jboss-logmanager-2.1.15/src/main/java/org/jboss/logmanager/Logger.java 2020-04-16 17:48:53.000000000 +0000 @@ -83,8 +83,8 @@ Logger(final LoggerNode loggerNode, final String name) { // Don't set up the bundle in the parent... super(name, null); - // We maintain our own level - super.setLevel(Level.ALL); + // We have to propagate our level to an internal data structure in the superclass + super.setLevel(loggerNode.getLevel()); this.loggerNode = loggerNode; } @@ -116,6 +116,8 @@ */ public void setLevel(Level newLevel) throws SecurityException { LogContext.checkAccess(loggerNode.getContext()); + // We have to propagate our level to an internal data structure in the superclass + super.setLevel(newLevel); loggerNode.setLevel(newLevel); } diff -Nru jboss-logmanager-2.1.14/src/main/java9/org/jboss/logmanager/JDKSpecific.java jboss-logmanager-2.1.15/src/main/java9/org/jboss/logmanager/JDKSpecific.java --- jboss-logmanager-2.1.14/src/main/java9/org/jboss/logmanager/JDKSpecific.java 2019-08-07 14:39:45.000000000 +0000 +++ jboss-logmanager-2.1.15/src/main/java9/org/jboss/logmanager/JDKSpecific.java 2020-04-16 17:48:53.000000000 +0000 @@ -23,10 +23,8 @@ import java.lang.module.ModuleDescriptor; import java.security.PrivilegedAction; -import java.util.Collection; import java.util.EnumSet; import java.util.Iterator; -import java.util.LinkedHashSet; import java.util.Optional; import java.util.Set; import java.util.function.Function; @@ -64,12 +62,12 @@ } } - static Collection> findCallingClasses(Set rejectClassLoaders) { + static LogContext logContextFinder(Set rejectClassLoaders, final Function finder) { final SecurityManager sm = System.getSecurityManager(); if (sm != null) { - return doPrivileged(new FindCallingClassesAction(rejectClassLoaders)); + return doPrivileged(new FindCallingClassesAction(rejectClassLoaders, finder)); } else { - return WALKER.walk(new FindAllWalkFunction(rejectClassLoaders)); + return WALKER.walk(new FindAllWalkFunction(rejectClassLoaders, finder)); } } @@ -163,15 +161,17 @@ } } - static final class FindCallingClassesAction implements PrivilegedAction>> { + static final class FindCallingClassesAction implements PrivilegedAction { private final Set rejectClassLoaders; + private final Function finder; - FindCallingClassesAction(final Set rejectClassLoaders) { + FindCallingClassesAction(final Set rejectClassLoaders, final Function finder) { this.rejectClassLoaders = rejectClassLoaders; + this.finder = finder; } - public Collection> run() { - return WALKER.walk(new FindAllWalkFunction(rejectClassLoaders)); + public LogContext run() { + return WALKER.walk(new FindAllWalkFunction(rejectClassLoaders, finder)); } } @@ -195,24 +195,29 @@ } } - static final class FindAllWalkFunction implements Function, Collection>> { + static final class FindAllWalkFunction implements Function, LogContext> { private final Set rejectClassLoaders; + private final Function finder; - FindAllWalkFunction(final Set rejectClassLoaders) { + FindAllWalkFunction(final Set rejectClassLoaders, final Function finder) { this.rejectClassLoaders = rejectClassLoaders; + this.finder = finder; } - public Collection> apply(final Stream stream) { - final Collection> results = new LinkedHashSet<>(); + @Override + public LogContext apply(final Stream stream) { final Iterator iterator = stream.iterator(); while (iterator.hasNext()) { final Class clazz = iterator.next().getDeclaringClass(); final ClassLoader classLoader = clazz.getClassLoader(); if (classLoader != null && ! rejectClassLoaders.contains(classLoader)) { - results.add(clazz); + final LogContext result = finder.apply(classLoader); + if (result != null) { + return result; + } } } - return results; + return null; } } }