Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump JUnit to 5.11.0-M2 #40751

Closed
wants to merge 1 commit into from
Closed

Conversation

dmlloyd
Copy link
Member

@dmlloyd dmlloyd commented May 21, 2024

Relates to #40601, #40749, #38991. No use waiting for Dependabot. Fixes problem where an NPE can occur in some tests.

Relates to quarkusio#40601, quarkusio#40749, quarkusio#38991. No use waiting for Dependabot. Fixes problem where an NPE can occur in some tests.
@quarkus-bot quarkus-bot bot added area/arc Issue related to ARC (dependency injection) area/dependencies Pull requests that update a dependency file area/devtools Issues/PR related to maven, gradle, platform and cli tooling/plugins area/gradle Gradle area/platform Issues related to definition and interaction with Quarkus Platform labels May 21, 2024
@dmlloyd
Copy link
Member Author

dmlloyd commented May 21, 2024

/cc @holly-cummins, @geoand

@geoand
Copy link
Contributor

geoand commented May 21, 2024

🤞 for CI to pass!

@holly-cummins
Copy link
Contributor

Good news! I'll get going on the reproducer, too, and hopefully I'll see it go green when I rebase to this change.

@holly-cummins
Copy link
Contributor

holly-cummins commented May 21, 2024

Should fix quarkiverse/quarkiverse#94 once merged (but we'll let the ecosystem CI decide). It will also allow the tests disabled for #23612 to be re-enabled (so cc-ing @edeandrea).

Copy link

quarkus-bot bot commented May 21, 2024

Status for workflow Quarkus CI

This is the status report for running Quarkus CI on commit d0dd836.

Failing Jobs

Status Name Step Failures Logs Raw logs Build scan
JVM Tests - JDK 17 Build Failures Logs Raw logs 🔍
JVM Tests - JDK 21 Build Failures Logs Raw logs 🔍
JVM Tests - JDK 17 Windows Build Failures Logs Raw logs 🔍
MicroProfile TCKs Tests Download .m2/repository/io/quarkus ⚠️ Check → Logs Raw logs 🚧

Full information is available in the Build summary check run.
You can consult the Develocity build scans.

Failures

⚙️ JVM Tests - JDK 17 #

- Failing: independent-projects/extension-maven-plugin 
! Skipped: core/deployment core/runtime devtools/cli and 807 more

📦 independent-projects/extension-maven-plugin

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldCreateExtensionProperties - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldCreateMetadata - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldExecuteSimplePomCleanly - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldFlagIncorrectRuntimeDependencyOnDeployment - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldFlagMissingDependenciesInARealisticExtension - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldProcessRealisticExtensionCleanly - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldReadLocalParentsForScmInfo - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.testGetCodestartArtifact - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

⚙️ JVM Tests - JDK 21 #

- Failing: independent-projects/extension-maven-plugin 
! Skipped: core/deployment core/runtime devtools/cli and 807 more

📦 independent-projects/extension-maven-plugin

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldCreateExtensionProperties - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldCreateMetadata - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldExecuteSimplePomCleanly - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldFlagIncorrectRuntimeDependencyOnDeployment - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldFlagMissingDependenciesInARealisticExtension - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldProcessRealisticExtensionCleanly - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldReadLocalParentsForScmInfo - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.testGetCodestartArtifact - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1708)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

⚙️ JVM Tests - JDK 17 Windows #

- Failing: independent-projects/extension-maven-plugin 
! Skipped: core/deployment core/runtime devtools/cli and 807 more

📦 independent-projects/extension-maven-plugin

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldCreateExtensionProperties - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldCreateMetadata - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldExecuteSimplePomCleanly - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldFlagIncorrectRuntimeDependencyOnDeployment - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldFlagMissingDependenciesInARealisticExtension - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldProcessRealisticExtensionCleanly - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.shouldReadLocalParentsForScmInfo - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

io.quarkus.maven.ExtensionDescriptorMojoTest.testGetCodestartArtifact - History - More details - Source on GitHub

java.lang.NoSuchMethodError: 'java.lang.reflect.AccessibleObject org.junit.platform.commons.util.ReflectionUtils.makeAccessible(java.lang.reflect.AccessibleObject)'
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setup(SystemStubsExtension.java:86)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.setupFields(SystemStubsExtension.java:110)
	at uk.org.webcompere.systemstubs.jupiter.SystemStubsExtension.postProcessTestInstance(SystemStubsExtension.java:31)
	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.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1625)
	at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:509)

@holly-cummins
Copy link
Contributor

Doh. Looks like JUnit made some API changes we need to deal with.

@gsmet
Copy link
Member

gsmet commented May 21, 2024

Sorry to spoil the party but I’m not sure I’m comfortable merging a M2 given we don’t control JUnit lifecycle.

@dmlloyd dmlloyd marked this pull request as draft May 21, 2024 20:22
@geoand
Copy link
Contributor

geoand commented May 22, 2024

The problem is that without this change, there is a chance that David's previous important PR might fail in some circumstances.

@holly-cummins
Copy link
Contributor

holly-cummins commented May 22, 2024

I’ve done some digging into when this happens. PR with reproducer tests: #40773

We didn’t have any coverage for @TemplateTest, so I’ve added some, and don’t see the NPE. I see other problems, but that’s orthogonal.

I think problems happen when the JUnit extension used in the template is provided by an extension. That combination is what triggers the classloader dance which ends in using serialisation to hop between classloaders. That’s a somewhat rare scenario; I searched in the quarkiverse org extensions, and it’s only Pact which does this (or at least, if anyone else does it, they never bothered to test it).

So that’s the good news, but the bad news is that Quarkus 3.11 would break anyone using a Pact provider. There isn’t really a workaround. We can see from https://quarkus.io/extensions/?sort=downloads that the Pact Provider extension is reasonably well used (it’s about a third of the way down the page, more popular than Cucumber, say).

So I think we have four options:

  1. Accept JUnit 5.11.0-M2 (once we do the work to work around the breaking changes), with the attendant risks + ickiness of shipping a milestone release.
  2. Temporarily revert #60401, which means reintroducing the break covered by https://github.com/quarkusio/quarkus/pull/40749/files#diff-675df95783a89f22ff50a447a6441c60196d63f1fbe018ae5294523dfd98add4. It's @ExtendWith(MyParameterResolver.class), where the parameter resolver comes from an extension. That's the one I have a reproducer for, but there's a bunch of issues relating to serialization on Java 17+ that are fixed by Test framework: Use JBoss Marshalling cloner #40601.
  3. Keep the code as it currently is, which means breaking everyone doing pact provider tests.
  4. Temporarily hot-patch or shade JUnit, since David's fix for the NPE is super small and safe.

@geoand
Copy link
Contributor

geoand commented May 22, 2024

Thanks for doing a deep dive on this @holly-cummins!

I'm personally in favor of options 1 or 3.

We could also try and ask the JUnit folks again if we can get a 5.10.z release with a David's fix in it.

@gsmet
Copy link
Member

gsmet commented May 22, 2024 via email

@geoand
Copy link
Contributor

geoand commented May 22, 2024

Let's try to kindly ask for that

Done, let's see what happens

@holly-cummins
Copy link
Contributor

Fingers crossed for the micro release, that's a good thought, @geoand. I think I'm most against option 3. That's partly because of my own bias because it's my extension and my tests, but also because it's a regression. At the moment, we have lots of things that don't work around test classloading, but they've not worked for a long time. So we know no one is doing those things, because they couldn't be – they just don't work. Whereas if we broke Pact (which we know people are doing) to enable things people aren't doing, it would be an awkward conversation.

@gsmet
Copy link
Member

gsmet commented May 22, 2024

Whereas if we broke Pact

I agree it's not ideal but by using a non-final release, we are also having a non-null risk of breaking regular JUnit usage and that wouldn't be better.

We need to be a bit cautious.

Let's rediscuss this once we have JUnit's position.

@holly-cummins
Copy link
Contributor

Whereas if we broke Pact

I agree it's not ideal but by using a non-final release, we are also having a non-null risk of breaking regular JUnit usage and that wouldn't be better.

Agreed ... I think my personal vote would be for option 2. That puts us back on the old status quo, which was far from ideal, but at least it's not a regression ... and we would have the JBoss Marshaller change good to go as soon as the JUnit fix is in a proper release.

Let's rediscuss this once we have JUnit's position.

+1

@edeandrea
Copy link
Contributor

Not that my vote matters, but I also agree with Holly. I would vote on option 2.

@geoand
Copy link
Contributor

geoand commented May 22, 2024

I am personally pretty strongly against 2.

@edeandrea
Copy link
Contributor

Why? As Holly explains, that fix is fixing things that have been broken for a long time, so people aren't doing it currently. It has the least chance to introduce any kind of regression until the JUnit fix is released.

@holly-cummins
Copy link
Contributor

holly-cummins commented May 22, 2024

I am personally pretty strongly against 2.

So I think there's two aspects to consider:

  • Which use cases are more common? The use cases that currently pass which will now break, or the use cases that currently fail that would start passing? To me, based on usage numbers, I think we have to assume that the scenario which currently works is more common. But maybe we can quantify this somehow.
  • Can we accept a delay in getting to the scenario where the 'new' use cases pass, or do we need to get them passing right now, even if it regresses other things?

To me, a delay seems acceptable. I know reverting good changes feels bad. On the other hand, if @dmlloyd had gone to the beach for a month in May instead of having good ideas about serialization, the net effect would be exactly the same as option 2, and no one would complain. Well, the net effect for our codebase would be the same. The net effect for David would obviously be better, because he'd have a month on the beach.

@holly-cummins
Copy link
Contributor

I've raised #40880 with the code changes to (temporarily!) back this out, so we're ready to go if we decide to go for one of the "avoid regressing our users" paths and don't want to pick up the JUnit pre-release.

@holly-cummins
Copy link
Contributor

I think we can close this as "won't do", to get it off the list of open PRs. #40906 is a superset of this, since we now also need to reintroduce the JBoss serializer (doh!) as well as bumping the JUnit version.

@quarkus-bot quarkus-bot bot added the triage/invalid This doesn't seem right label May 30, 2024
@holly-cummins
Copy link
Contributor

(Anyone would think I've got a vendetta against @dmlloyd .... reverting his changesets, closing his PRs ... )

@edeandrea
Copy link
Contributor

(Anyone would think I've got a vendetta against @dmlloyd .... reverting his changesets, closing his PRs ... )

A time will come at some point in the future when it'll happen to you :D

@dmlloyd dmlloyd deleted the junit-5.11.0-M2 branch May 30, 2024 18:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/arc Issue related to ARC (dependency injection) area/dependencies Pull requests that update a dependency file area/devtools Issues/PR related to maven, gradle, platform and cli tooling/plugins area/gradle Gradle area/platform Issues related to definition and interaction with Quarkus Platform triage/invalid This doesn't seem right
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants