Skip to content

testDeserializationOfNotWhiteListedClassThrowsError sometimes fails #4441

@vladak

Description

@vladak

The ConfigurationTest.testDeserializationOfNotWhiteListedClassThrowsError test sometimes fails on Windows, specifically with the 2 parameter:

Error: Tests run: 6, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.657 s <<< FAILURE! - in org.opengrok.indexer.configuration.ConfigurationTest Error: org.opengrok.indexer.configuration.ConfigurationTest.testDeserializationOfNotWhiteListedClassThrowsError(String)[2] Time elapsed: 0.047 s <<< FAILURE! org.opentest4j.AssertionFailedError: Unexpected exception type thrown, expected: <java.lang.IllegalAccessError> but was: <java.io.IOException>	at org.junit.jupiter.api.AssertionFailureBuilder.build(AssertionFailureBuilder.java:151)	at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:67)	at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:35)	at org.junit.jupiter.api.Assertions.assertThrows(Assertions.java:3111)	at org.opengrok.indexer.configuration.ConfigurationTest.testDeserializationOfNotWhiteListedClassThrowsError(ConfigurationTest.java:223)	at java.base/java.lang.reflect.Method.invoke(Method.java:568)	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)	at java.base/java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:179)	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183)	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)	at java.base/java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:992)	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)	at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)	at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:197)	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)	at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:276)	at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:499)	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150)	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173)	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)	at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:596)	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) Caused by: java.io.IOException: Not a valid config file	at org.opengrok.indexer.configuration.Configuration.decodeObject(Configuration.java:1545)	at org.opengrok.indexer.configuration.Configuration.makeXMLStringAsConfiguration(Configuration.java:1529)	at org.opengrok.indexer.configuration.ConfigurationTest.lambda$testDeserializationOfNotWhiteListedClassThrowsError$0(ConfigurationTest.java:223)	at org.junit.jupiter.api.AssertThrows.assertThrows(AssertThrows.java:53)	... 42 more 

Looks like the class loader actually allows the configuration to pass and the Configuration deserialization then fails with IOException.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions