Robert Munteanu created SLING-13173:
---------------------------------------
Summary: Overly broad mocking of Files.class can lead to test
failures
Key: SLING-13173
URL: https://issues.apache.org/jira/browse/SLING-13173
Project: Sling
Issue Type: Bug
Components: JCR
Affects Versions: JCR ContentLoader 3.0.0
Reporter: Robert Munteanu
Assignee: Robert Munteanu
Fix For: JCR ContentLoader 3.0.2
Under certain circumstances the static mocking of the Files.class causes slf4j
to fail initialisation, leading to test failures.
{noformat}
$ mvn clean test -Dtest=ZipReaderTest
(...)
[ERROR]
org.apache.sling.jcr.contentloader.internal.readers.ZipReaderTest.removeTempFileLogWarningOnIOException
-- Time elapsed: 0.018 s <<< ERROR!
java.lang.IllegalStateException: Unexpected initialization failure
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:216)
at org.slf4j.LoggerFactory.performInitialization(LoggerFactory.java:187)
at org.slf4j.LoggerFactory.getProvider(LoggerFactory.java:511)
at org.slf4j.LoggerFactory.getILoggerFactory(LoggerFactory.java:497)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:446)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:472)
at
org.apache.sling.jcr.contentloader.internal.readers.ZipReader.removeTempFile(ZipReader.java:140)
at
org.apache.sling.jcr.contentloader.internal.readers.ZipReaderTest.lambda$removeTempFileLogWarningOnIOException$1(ZipReaderTest.java:260)
at
org.apache.sling.jcr.contentloader.internal.readers.ZipReaderTest.doWorkWithCapturedSystemErr(ZipReaderTest.java:351)
at
org.apache.sling.jcr.contentloader.internal.readers.ZipReaderTest.removeTempFileLogWarningOnIOException(ZipReaderTest.java:260)
Caused by: java.lang.NullPointerException: Cannot invoke
"java.nio.file.attribute.BasicFileAttributes.lastModifiedTime()" because
"this.attrs" is null
at
java.base/java.util.zip.ZipFile$Source$Key.hashCode(ZipFile.java:1456)
at java.base/java.util.HashMap.hash(HashMap.java:338)
at java.base/java.util.HashMap.getNode(HashMap.java:577)
at java.base/java.util.HashMap.get(HashMap.java:565)
at java.base/java.util.zip.ZipFile$Source.get(ZipFile.java:1500)
at
java.base/java.util.zip.ZipFile$CleanableResource.<init>(ZipFile.java:704)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:204)
at java.base/java.util.zip.ZipFile.<init>(ZipFile.java:150)
at java.base/java.util.jar.JarFile.<init>(JarFile.java:333)
at
java.base/sun.net.www.protocol.jar.URLJarFile.<init>(URLJarFile.java:70)
at
java.base/sun.net.www.protocol.jar.URLJarFile.getJarFile(URLJarFile.java:56)
at
java.base/sun.net.www.protocol.jar.JarFileFactory.get(JarFileFactory.java:202)
at
java.base/sun.net.www.protocol.jar.JarFileFactory.getOrCreate(JarFileFactory.java:95)
at
java.base/sun.net.www.protocol.jar.JarURLConnection.connect(JarURLConnection.java:123)
at
java.base/sun.net.www.protocol.jar.JarURLConnection.getInputStream(JarURLConnection.java:167)
at
java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.parse(ServiceLoader.java:1043)
at
java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(ServiceLoader.java:1084)
at
java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1099)
at
java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1142)
at java.base/java.util.ServiceLoader$1.hasNext(ServiceLoader.java:1164)
at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1246)
at org.slf4j.LoggerFactory.findServiceProviders(LoggerFactory.java:133)
at org.slf4j.LoggerFactory.bind(LoggerFactory.java:195)
... 9 more
{noformat}
This is not reproducible on all systems - Jenkins passes.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)