Skip to content

[Bug]: oracle-free module incompatible with testcontainers 2.x.x #11249

Closed as not planned

Description

@farcasalin

Module

Oracle Free

Testcontainers version

2.0.2

Using the latest Testcontainers version?

Yes

Host OS

MacOS

Host Arch

ARM

Docker version

Client:
 Version:           29.0.1
 API version:       1.52
 Go version:        go1.25.4
 Git commit:        eedd969
 Built:             Fri Nov 14 16:16:57 2025
 OS/Arch:           darwin/arm64
 Context:           desktop-linux

Server: Docker Desktop 4.52.0 (210994)
 Engine:
  Version:          29.0.1
  API version:      1.52 (minimum version 1.44)
  Go version:       go1.25.4
  Git commit:       198b5e3
  Built:            Fri Nov 14 16:18:20 2025
  OS/Arch:          linux/arm64
  Experimental:     false
 containerd:
  Version:          v2.1.5
  GitCommit:        fcd43222d6b07379a4be9786bda52438f0dd16a1
 runc:
  Version:          1.3.3
  GitCommit:        v1.3.3-0-gd842d771
 docker-init:
  Version:          0.19.0
  GitCommit:        de40ad0

What happened?

testcontainers 2.x.x version unshaded org.apache.commons from it's jar and it breaks the usage of OracleContainer class.

Relevant log output

java.lang.NoClassDefFoundError: org/testcontainers/shaded/org/apache/commons/lang3/StringUtils

	at org.testcontainers.oracle.OracleContainer.withUsername(OracleContainer.java:129)
	...
	at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized0(Native Method)
	at java.base/jdk.internal.misc.Unsafe.ensureClassInitialized(Unsafe.java:1155)
	at java.base/java.lang.reflect.Field.acquireFieldAccessor(Field.java:1132)
	at java.base/java.lang.reflect.Field.getFieldAccessor(Field.java:1113)
	at java.base/java.lang.reflect.Field.get(Field.java:425)
	at org.testcontainers.junit.jupiter.TestcontainersExtension.getContainerInstance(TestcontainersExtension.java:248)
	at org.testcontainers.junit.jupiter.TestcontainersExtension.lambda$findSharedContainers$10(TestcontainersExtension.java:209)
	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.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
	at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:682)
	at org.testcontainers.junit.jupiter.TestcontainersExtension.findSharedContainers(TestcontainersExtension.java:210)
	at org.testcontainers.junit.jupiter.TestcontainersExtension.beforeAll(TestcontainersExtension.java:55)
	at java.base/java.util.ArrayList.forEach(ArrayList.java:1511)
Caused by: java.lang.ClassNotFoundException: org.testcontainers.shaded.org.apache.commons.lang3.StringUtils
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188)

Additional Information

No response

Activity

  1. eddumelendez commented on Nov 25, 2025

    @eddumelendez
    Member

    Hi, I have executed the test locally and also this example with no issues at all. Can you check your dependencies? Maybe there is a mixup of 1.x and 2.x on your classpath. You can run mvn dependency:tree or ./gradlew dependencies.

  2. farcasalin commented on Nov 26, 2025

    @farcasalin
    Author

    Hi, I have executed the test locally and also this example with no issues at all. Can you check your dependencies? Maybe there is a mixup of 1.x and 2.x on your classpath. You can run mvn dependency:tree or ./gradlew dependencies.

    This package doesn't have the 2.x version on maven central: https://mvnrepository.com/artifact/org.testcontainers/oracle-free
    I am using this in my project.

  3. eddumelendez commented on Nov 26, 2025

    @eddumelendez
    Member
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions