Release Notes Add Automatic-Module-Name Manifest Header for Java 9 compatibility. BufferedReader is not closed properly. Remove redundant initializer #46 Use a weak reference for the cached class loader #71. Add more entries to .gitignore file #25. Minor Improvements #34. Bump Java from 6 to 8. Bump actions/cache from 2 to 3.0.8 #50, #77, #95, #98. Bump actions/checkout from 2.3.1 to 3, #24, #63, #75. Bump actions/setup-java from 1.4.0 to 3, #21. Bump junit from 3.8.1 to 4.13.2 #23, #38. Bump clirr-maven-plugin from 2.2.2 to 2.8 #14. Bump findbugs-maven-plugin from 2.5.2 to 3.0.5 #8. Bump maven-failsafe-plugin from 2.12 to 3.0.0-M7 #31, #91. Bump spotbugs-surefire-plugin from 2.22.2 to 3.0.0-M5. Bump maven-dependency-plugin from 2.4 to 3.3.0 #29, #79. Bump maven-pmd-plugin from 3.3 to 3.18.0 #28, #90, #100. Bump maven-assembly-plugin from 2.5 to 3.4.2 #30, #94, #96. Bump servlet-api from 2.3 to 2.5 #27. Bump maven-checkstyle-plugin from 2.7 to 3.2.0 #35, #101. Bump spotbugs-maven-plugin from 4.1.4 to 4.7.1.1 #33, #70, #78, #93, #97. Bump spotbugs from 4.5.3 to 4.7.1 #81, #87, #92. Bump commons-parent from 52 to 53 #82. Bump github/codeql-action from 1 to 2 #86. Improve performance of LogFactory#getFactory() by calling Thread#currentThread()#getContextClassLoader() directly instead of using reflection. As a consequence support for JDK 1.1 has been dropped. Fix SecurityAllowedTestCase when executed with OpenJDK 1.7 due to an additional required RuntimePermission. Fix javadoc to comply with javadoc tool from jdk 1.8. Use "org.apache.commons.logging" as bundle symbolic name. The jar manifest now contains proper OSGi-related metadata information. LogFactory and LogFactoryImpl will not swallow certain errors anymore (ThreadDeath and VirtualMachineError). Improved thread-safety for several log adapters, including AvalonLogger, SimpleLog, Log4JLogger, LogKitLogger. In case of a discovery failure now also the stacktrace of the cause will be added to the diagnostic message. Jdk14Logger now correctly uses the specified logger name. Change scope of Jdk14Logger.log(Level, String, Throwable) to protected, allowing subclasses to modify the logging output. Properly synchronize access to protected static field LogFactory.nullClassLoaderFactory. Prevent potential deadlock scenario in WeakHashtable. Potential missing privileged block for class loader. LogFactoryImpl.setAttribute - possible NPE. Log4JLogger uses deprecated static members of Priority such as INFO. Static analysis suggests a number of potential improvements. SimpleLog.log - unsafe update of shortLogName. LogFactory.diagnosticPrefix and diagnosticsStream could be final.