Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
83 commits
Select commit Hold shift + click to select a range
49d4800
Check if jupiter can be used/ is available.
dweiss Apr 12, 2026
9404170
Modular configurations don't play well with module descriptors that g…
dweiss Apr 12, 2026
1892f25
Fix modular classpath extension by adding gradle variants for runtime…
dweiss Apr 12, 2026
16be4ff
Tidy, assertion to verify jupiter works.
dweiss Apr 12, 2026
deaa106
Add api/runtime Usage attribute to modular configurations.
dweiss Apr 13, 2026
437c8d6
Merge branch 'main' into jupiter
dweiss Apr 13, 2026
30a6f49
Merge branch 'usage-attr' into jupiter
dweiss Apr 13, 2026
d1cb9e3
Bump gradle opts to 0.2.2 (fixes dynamic opt values changing when rea…
dweiss Apr 13, 2026
5284218
Correct message when tests fail.
dweiss Apr 13, 2026
fafae38
Cleanups and back-compat modifications.
dweiss Apr 14, 2026
346fc2b
Some progress but mostly hitting issues with random context access an…
dweiss Apr 14, 2026
6d664d7
Merge remote-tracking branch 'origin/main' into jupiter
dweiss Apr 14, 2026
a119f0c
Merge remote-tracking branch 'origin/main' into jupiter
dweiss Apr 15, 2026
a05b522
Merge remote-tracking branch 'origin/main' into jupiter
dweiss Apr 15, 2026
feeff42
Merge remote-tracking branch 'origin/main' into jupiter
dweiss Apr 16, 2026
dd89ef6
Pull up a base class for junit4/junit5, some renames.
dweiss Apr 16, 2026
ca951d0
Passing tests.
dweiss Apr 16, 2026
0d3f1c2
Merge remote-tracking branch 'origin/main' into jupiter
dweiss Apr 17, 2026
754bce2
Remove debugging cruft.
dweiss Apr 17, 2026
7892420
Removing direct access to randomized context, where possible.'
dweiss Apr 17, 2026
2a880cd
Test group control via sys properties.
dweiss Apr 17, 2026
581973a
Make lucene:memory tests pass. Hacky but shows the idea.
dweiss Apr 21, 2026
6d1cf6f
Try to pull up a clear concept of test framework's infrastructure.
dweiss Apr 21, 2026
e98d4ab
Merge remote-tracking branch 'origin/main' into jupiter
dweiss Apr 22, 2026
4d44b53
Cleanups.
dweiss Apr 22, 2026
9666bc6
Cleanups.
dweiss Apr 23, 2026
b8359ed
erge remote-tracking branch 'origin/main' into jupiter
dweiss Apr 23, 2026
c117e63
Moving framework-independent assertions and utilities up to the paren…
dweiss Apr 23, 2026
13ad951
More cleanups.
dweiss Apr 23, 2026
c3e50f9
Separated test-framework dep. infrastructure.
dweiss Apr 24, 2026
4634b80
Add todos.
dweiss Apr 24, 2026
9f42590
Cleanups.
dweiss Apr 24, 2026
2a95f10
Simplify.
dweiss Apr 24, 2026
a1e8c9f
Inline what was previously an extension into LuceneTestCaseJupiter to…
dweiss Apr 24, 2026
75d0c9e
Cleanups.
dweiss Apr 27, 2026
5dafbfb
Remove closeAfterTest completely. Cleanups.
dweiss Apr 28, 2026
d15f86f
Remove unused class.
dweiss Apr 28, 2026
22181b9
Rework failure tracking.
dweiss Apr 28, 2026
0e3a1e6
More cleanups.
dweiss Apr 29, 2026
d22b39d
Ensure tests are run sequentially.
dweiss Apr 29, 2026
117d352
Custom method orderer.
dweiss Apr 29, 2026
c73d4bc
Reproduce line for jupiter.
dweiss Apr 30, 2026
d97873e
Minor cleanups.
dweiss Apr 30, 2026
271616d
Clean up todos.
dweiss Apr 30, 2026
60a6c94
Enforce test class name.
dweiss Apr 30, 2026
2d2171d
Cleanups.
dweiss Apr 30, 2026
63c9a9c
More cleanups.
dweiss Apr 30, 2026
ea37455
Merge remote-tracking branch 'origin/main' into jupiter
dweiss Apr 30, 2026
dcc85ed
Merge remote-tracking branch 'origin/main' into jupiter
dweiss May 1, 2026
bcf2379
Changes entry and migration guide.
dweiss May 1, 2026
0e9bc32
Replace junit4-specific expectation on thrown exception with plain code.
dweiss May 2, 2026
3db94b6
claude written scripts to detect junit test annotations on already te…
dweiss May 2, 2026
f623110
Ignore local dev scripts editor configs.
dweiss May 2, 2026
dee2db6
Drop @Test annotation on methods that are test* prefixed.
dweiss May 2, 2026
5c072a4
More utility scripts.
dweiss May 2, 2026
92ada09
Update javaparser, revert the hack.
dweiss May 2, 2026
f9a1ccc
Add setUp, tearDown support, unfortunately.
dweiss May 2, 2026
3ec98a5
Remove junit4 repeat annotations.
dweiss May 2, 2026
39e3b8d
Remove @Rule (unused).
dweiss May 2, 2026
9fc5131
Correct setup/teardown behavior (junit5 annotations are not inherited).
dweiss May 2, 2026
cc05043
Remove ai tests/refactoring remnants.
dweiss May 2, 2026
ea03dc2
Merge remote-tracking branch 'origin/main' into jupiter
dweiss May 2, 2026
74a83e3
Apply prek fixes.
dweiss May 2, 2026
59d4223
Remove wildcard import.
dweiss May 2, 2026
63e27f7
Add suppressions to several static fields.
dweiss May 2, 2026
4385082
Remove unused modules.
dweiss May 2, 2026
d47e20f
Merge remote-tracking branch 'origin/main' into jupiter
dweiss May 2, 2026
a80c363
Add missing javadocs.
dweiss May 2, 2026
3c4e1ce
Move fieldToType to framework specific subclasses.
dweiss May 3, 2026
40f62b3
Convert lucene/expressions to junit5.
dweiss May 3, 2026
ed3dc56
Add forbidden apis check for junit4 api (with the exception of Assert).
dweiss May 3, 2026
f8e42f9
Bump randomizedtesting-jupiter to 0.3.0.
dweiss May 3, 2026
82fcd49
Merge branch 'main' into jupiter
dweiss May 6, 2026
c96ada3
deps(java): bump gradle-wrapper from 9.4.1 to 9.5.0 (#16036)
dependabot[bot] May 6, 2026
3703e7d
deps(java): bump org.apache.opennlp:opennlp-tools from 2.5.8 to 2.5.9…
dependabot[bot] May 6, 2026
03e26be
Revert "deps(java): bump gradle-wrapper from 9.4.1 to 9.5.0 (#16036)"…
dweiss May 6, 2026
7c816e9
Eliminate redundant cardinality() pass in MaxScoreBulkScorer (#15971)
iprithv May 6, 2026
1aa3b7c
Optimize trie builder (#15977)
gf2121 May 7, 2026
0f68ede
Upgrade to Gradle 9.5.0 (corrected) (#16039)
dweiss May 7, 2026
27b1aff
Remove `getCollectors()` from `TopFieldCot llectorManager` (#15608)
dweiss May 12, 2026
c2019af
Fix sandbox workflow/ faiss (#16041)
dweiss May 7, 2026
0114b79
Specify the field name when getting the FlatVectorsScorer from a Flat…
thecoop May 9, 2026
f4875e6
Merge remote-tracking branch 'origin/main' into jupiter
dweiss May 12, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -132,6 +132,21 @@ public void apply(Project project) {
.toFile())));
});

// Junit4->Junit5 transition.
var forbiddenApisTestTask = allForbiddenApisTasks.named("forbiddenApisTest");
switch (project.getPath()) {
case ":lucene:expressions", ":lucene:memory":
forbiddenApisTestTask.configure(
task -> {
task.setSignaturesFiles(
task.getSignaturesFiles()
.plus(
project.files(
forbiddenApisDir.resolve("non-standard/junit4.txt").toFile())));
});
break;
}

// Configure non-standard, per-project stuff.
var forbiddenApisMainTask = allForbiddenApisTasks.named("forbiddenApisMain");

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,14 @@ public void afterTest(TestDescriptor desc, TestResult result) {
if (desc.getName().equals("classMethod")) {
qTestName = desc.getClassName();
} else {
qTestName = desc.getClassName() + "." + desc.getName();
// For junit5/jupiter, gradle support is very limited for now.
// ideally, we should report the repro line using test metadata
// (from within the test). Or use uniqueid on the context that failed
// to reproduce it.
//
// for now, just trim the trailing ().
String name = desc.getName().replaceAll("\\(\\).*$", "");
qTestName = desc.getClassName() + "." + name;
}

var randomizationParameters = "";
Expand Down
15 changes: 7 additions & 8 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ jmh = "1.37"
jts = "1.20.0"
# unit tests
junit = "4.13.2"
junit5 = "6.0.3"
# @keep Minimum gradle version to run the build
minGradle = "9.5.0"
# @keep This is the minimum required Java version.
Expand All @@ -50,6 +51,7 @@ opennlp = "2.5.9"
procfork = "1.0.6"
# unit tests
randomizedtesting = "2.8.4"
randomizedtesting-jupiter = "0.3.0"
# spatial-extras/ support
s2-geometry = "1.0.0"
# spatial-extras/ support
Expand Down Expand Up @@ -83,26 +85,23 @@ jmh-annprocess = { module = "org.openjdk.jmh:jmh-generator-annprocess", version.
jmh-core = { module = "org.openjdk.jmh:jmh-core", version.ref = "jmh" }
jts = { module = "org.locationtech.jts:jts-core", version.ref = "jts" }
junit = { module = "junit:junit", version.ref = "junit" }
junitplatform-launcher = "org.junit.platform:junit-platform-launcher:6.0.3"
junitplatform-vintage = "org.junit.vintage:junit-vintage-engine:6.0.3"
junitplatform-jupiter = { module = "org.junit.jupiter:junit-jupiter-engine", version.ref = "junit5" }
junitplatform-launcher = { module = "org.junit.platform:junit-platform-launcher", version.ref = "junit5" }
junitplatform-testkit = { module = "org.junit.platform:junit-platform-testkit", version.ref = "junit5" }
junitplatform-vintage = { module = "org.junit.vintage:junit-vintage-engine", version.ref = "junit5" }
morfologik-polish = { module = "org.carrot2:morfologik-polish", version.ref = "morfologik" }
morfologik-stemming = { module = "org.carrot2:morfologik-stemming", version.ref = "morfologik" }
morfologik-ukrainian = { module = "ua.net.nlp:morfologik-ukrainian-search", version.ref = "morfologik-ukrainian" }
nekohtml = { module = "net.sourceforge.nekohtml:nekohtml", version.ref = "nekohtml" }
opennlp-tools = { module = "org.apache.opennlp:opennlp-tools", version.ref = "opennlp" }
procfork = { module = "com.carrotsearch:procfork", version.ref = "procfork" }
randomizedtesting-jupiter = { module = "com.carrotsearch.randomizedtesting:randomizedtesting-jupiter", version.ref = "randomizedtesting-jupiter" }
randomizedtesting-runner = { module = "com.carrotsearch.randomizedtesting:randomizedtesting-runner", version.ref = "randomizedtesting" }
s2-geometry = { module = "io.sgr:s2-geometry-library-java", version.ref = "s2-geometry" }
spatial4j = { module = "org.locationtech.spatial4j:spatial4j", version.ref = "spatial4j" }
xerces = { module = "xerces:xercesImpl", version.ref = "xerces" }
zstd = { module = "com.github.luben:zstd-jni", version.ref = "zstd" }

[bundles]
junitplatform = [
"junitplatform-launcher",
"junitplatform-vintage",
]

[plugins]
benmanes-versions = "com.github.ben-manes.versions:0.54.0"
carrotsearch-buildopts = "com.carrotsearch.gradle.opts:0.2.2"
Expand Down
209 changes: 209 additions & 0 deletions gradle/validation/forbidden-apis/non-standard/junit4.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,209 @@
@defaultMessage Use JUnit5/jupiter assertions or assertj (preferred)
junit.textui.TestRunner
junit.textui.ResultPrinter
junit.framework.Protectable
junit.framework.AssertionFailedError
junit.framework.Test
junit.framework.Assert
junit.framework.TestResult
junit.framework.JUnit4TestAdapterCache
junit.framework.ComparisonFailure
junit.framework.TestListener
junit.framework.JUnit4TestCaseFacade
junit.framework.TestSuite
junit.framework.ComparisonCompactor
junit.framework.TestCase
junit.framework.JUnit4TestAdapter
junit.framework.TestFailure
junit.runner.TestRunListener
junit.runner.BaseTestRunner
junit.runner.Version
junit.extensions.RepeatedTest
junit.extensions.TestDecorator
junit.extensions.TestSetup
junit.extensions.ActiveTestSuite
org.junit.experimental.theories.ParametersSuppliedBy
org.junit.experimental.theories.suppliers.TestedOn
org.junit.experimental.theories.suppliers.TestedOnSupplier
org.junit.experimental.theories.PotentialAssignment
org.junit.experimental.theories.ParameterSignature
org.junit.experimental.theories.Theory
org.junit.experimental.theories.internal.Assignments
org.junit.experimental.theories.internal.SpecificDataPointsSupplier
org.junit.experimental.theories.internal.BooleanSupplier
org.junit.experimental.theories.internal.EnumSupplier
org.junit.experimental.theories.internal.ParameterizedAssertionError
org.junit.experimental.theories.internal.AllMembersSupplier
org.junit.experimental.theories.FromDataPoints
org.junit.experimental.theories.ParameterSupplier
org.junit.experimental.theories.DataPoint
org.junit.experimental.theories.DataPoints
org.junit.experimental.theories.Theories
org.junit.experimental.max.MaxCore
org.junit.experimental.max.MaxHistory
org.junit.experimental.max.CouldNotReadCoreException
org.junit.experimental.results.FailureList
org.junit.experimental.results.ResultMatchers
org.junit.experimental.results.PrintableResult
org.junit.experimental.runners.Enclosed
org.junit.experimental.ParallelComputer
org.junit.experimental.categories.IncludeCategories
org.junit.experimental.categories.CategoryValidator
org.junit.experimental.categories.Categories
org.junit.experimental.categories.CategoryFilterFactory
org.junit.experimental.categories.Category
org.junit.experimental.categories.ExcludeCategories
org.junit.TestCouldNotBeSkippedException
org.junit.validator.AnnotationValidatorFactory
org.junit.validator.AnnotationValidator
org.junit.validator.PublicClassValidator
org.junit.validator.TestClassValidator
org.junit.validator.ValidateWith
org.junit.validator.AnnotationsValidator
org.junit.Test
# we need to support this in superclass, for now.
# org.junit.Assert
org.junit.Ignore
org.junit.ComparisonFailure
org.junit.runner.Description
org.junit.runner.Describable
org.junit.runner.OrderWith
org.junit.runner.manipulation.Sortable
org.junit.runner.manipulation.InvalidOrderingException
org.junit.runner.manipulation.Orderable
org.junit.runner.manipulation.Sorter
org.junit.runner.manipulation.Orderer
org.junit.runner.manipulation.Alphanumeric
org.junit.runner.manipulation.Filter
org.junit.runner.manipulation.Filterable
org.junit.runner.manipulation.NoTestsRemainException
org.junit.runner.manipulation.Ordering
org.junit.runner.JUnitCore
org.junit.runner.notification.Failure
org.junit.runner.notification.SynchronizedRunListener
org.junit.runner.notification.StoppedByUserException
org.junit.runner.notification.RunListener
org.junit.runner.notification.RunNotifier
org.junit.runner.OrderWithValidator
org.junit.runner.Result
org.junit.runner.FilterFactories
org.junit.runner.Runner
org.junit.runner.FilterFactory
org.junit.runner.Request
org.junit.runner.JUnitCommandLineParseResult
org.junit.runner.FilterFactoryParams
org.junit.runner.Computer
org.junit.runner.RunWith
org.junit.After
org.junit.internal.MethodSorter
org.junit.internal.TextListener
org.junit.internal.InexactComparisonCriteria
org.junit.internal.JUnitSystem
org.junit.internal.builders.AnnotatedBuilder
org.junit.internal.builders.SuiteMethodBuilder
org.junit.internal.builders.NullBuilder
org.junit.internal.builders.AllDefaultPossibilitiesBuilder
org.junit.internal.builders.IgnoredBuilder
org.junit.internal.builders.JUnit4Builder
org.junit.internal.builders.JUnit3Builder
org.junit.internal.builders.IgnoredClassRunner
org.junit.internal.ComparisonCriteria
org.junit.internal.RealSystem
org.junit.internal.Classes
org.junit.internal.SerializableValueDescription
org.junit.internal.management.ThreadMXBean
org.junit.internal.management.FakeRuntimeMXBean
org.junit.internal.management.RuntimeMXBean
org.junit.internal.management.ManagementFactory
org.junit.internal.management.ReflectiveThreadMXBean
org.junit.internal.management.FakeThreadMXBean
org.junit.internal.management.ReflectiveRuntimeMXBean
org.junit.internal.Checks
org.junit.internal.requests.MemoizingRequest
org.junit.internal.requests.OrderingRequest
org.junit.internal.requests.FilterRequest
org.junit.internal.requests.SortingRequest
org.junit.internal.requests.ClassRequest
org.junit.internal.AssumptionViolatedException
org.junit.internal.ArrayComparisonFailure
org.junit.internal.SerializableMatcherDescription
org.junit.internal.runners.MethodValidator
org.junit.internal.runners.InitializationError
org.junit.internal.runners.JUnit4ClassRunner
org.junit.internal.runners.ClassRoadie
org.junit.internal.runners.statements.RunAfters
org.junit.internal.runners.statements.FailOnTimeout
org.junit.internal.runners.statements.InvokeMethod
org.junit.internal.runners.statements.ExpectException
org.junit.internal.runners.statements.Fail
org.junit.internal.runners.statements.RunBefores
org.junit.internal.runners.TestClass
org.junit.internal.runners.model.EachTestNotifier
org.junit.internal.runners.model.ReflectiveCallable
org.junit.internal.runners.model.MultipleFailureException
org.junit.internal.runners.rules.ValidationError
org.junit.internal.runners.rules.RuleMemberValidator
org.junit.internal.runners.SuiteMethod
org.junit.internal.runners.JUnit38ClassRunner
org.junit.internal.runners.ErrorReportingRunner
org.junit.internal.runners.FailedBefore
org.junit.internal.runners.MethodRoadie
org.junit.internal.runners.TestMethod
org.junit.internal.matchers.TypeSafeMatcher
org.junit.internal.matchers.StacktracePrintingMatcher
org.junit.internal.matchers.ThrowableCauseMatcher
org.junit.internal.matchers.ThrowableMessageMatcher
org.junit.internal.Throwables
org.junit.internal.ExactComparisonCriteria
org.junit.function.ThrowingRunnable
org.junit.ClassRule
org.junit.AssumptionViolatedException
org.junit.Before
org.junit.AfterClass
org.junit.rules.Timeout
org.junit.rules.TemporaryFolder
org.junit.rules.Verifier
org.junit.rules.TestWatcher
org.junit.rules.RuleChain
org.junit.rules.DisableOnDebug
org.junit.rules.ErrorCollector
org.junit.rules.ExpectedExceptionMatcherBuilder
org.junit.rules.RunRules
org.junit.rules.MethodRule
org.junit.rules.Stopwatch
org.junit.rules.ExpectedException
org.junit.rules.TestRule
org.junit.rules.ExternalResource
org.junit.rules.TestName
org.junit.rules.TestWatchman
org.junit.BeforeClass
org.junit.Rule
org.junit.runners.RuleContainer
org.junit.runners.parameterized.ParametersRunnerFactory
org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParametersFactory
org.junit.runners.parameterized.TestWithParameters
org.junit.runners.parameterized.BlockJUnit4ClassRunnerWithParameters
org.junit.runners.ParentRunner
org.junit.runners.BlockJUnit4ClassRunner
org.junit.runners.Parameterized
org.junit.runners.Suite
org.junit.runners.AllTests
org.junit.runners.MethodSorters
org.junit.runners.model.MemberValueConsumer
org.junit.runners.model.FrameworkMember
org.junit.runners.model.InitializationError
org.junit.runners.model.RunnerBuilder
org.junit.runners.model.NoGenericTypeParametersValidator
org.junit.runners.model.TestClass
org.junit.runners.model.RunnerScheduler
org.junit.runners.model.TestTimedOutException
org.junit.runners.model.MultipleFailureException
org.junit.runners.model.InvalidTestClassError
org.junit.runners.model.FrameworkMethod
org.junit.runners.model.Annotatable
org.junit.runners.model.Statement
org.junit.runners.model.FrameworkField
org.junit.runners.JUnit4
org.junit.FixMethodOrder
org.junit.matchers.JUnitMatchers
org.junit.Assume
2 changes: 2 additions & 0 deletions lucene/CHANGES.txt
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,8 @@ API Changes
* GITHUB#15605: Remove unused getCollectors() and internal collector tracking from
TopFieldCollectorManager. Clarify thread-safety documentation. (Prudhvi Godithi)

* GITHUB#: Add junit5/jupiter support to the test-framework module. (Dawid Weiss)

New Features
---------------------
* GITHUB#15505: Upgrade snowball to 2d2e312df56f2ede014a4ffb3e91e6dea43c24be. New stemmer: PolishStemmer (and
Expand Down
31 changes: 30 additions & 1 deletion lucene/MIGRATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,35 @@

## Migration from Lucene 10.x to Lucene 11.0

### JUnit5/jupiter support in the test-framework

Lucene 11 brings initial support for writing test cases
using JUnit Jupiter.

The test-framework module exports both junit4 and junit5/jupiter
modules. `LuceneTestCase` remains the parent abstract class for JUnit4 tests.
`LuceneTestCaseJupiter` is the parent class to extend from for JUnit5
support.

#### Key changes

- All tests must be Jupiter tests, typically this means
methods must be annotated with `@Test`. Method prefix
`test*` is not sufficient. Methods that are named `test*` but are not tests
will cause validation errors.
- You can use parameterized tests, dynamic tests, etc. All these are supported.
- You *must not* call the static `random()` method on the parent
class, even though it is there. Add a `Random` parameter to your test methods
or callbacks - it will
be automatically injected by the test framework. See the `memory`
module tests for examples.
- Use `@BeforeEach`, `@AfterEach` and other junit5-specific callback
annotations instead of `setUp` and `tearDown` methods.
- Static utility methods have been pulled up to a parent class
called `LuceneTestCaseParent` but you should reference them either
without an explicit type or via the type of the parent class
for your test framework. The parent class may be removed in the future.

### Relaxed Index Upgrade Policy (GITHUB#13797)

Starting with Lucene 11.0.0, the index upgrade policy has been relaxed to allow safe upgrades across multiple major version numbers without reindexing when no format breaks occur.
Expand Down Expand Up @@ -308,7 +337,7 @@ Support for the optional complement syntax (`~`) that was deprecated in Lucene 1
has been removed. The `DEPRECATED_COMPLEMENT` flag and `REGEXP_DEPRECATED_COMPLEMENT`
enum value are no longer available.

Users should migrate to using _complement bracket expressions_ (`[^...]`) instead.
Users should migrate to using *complement bracket expressions* (`[^...]`) instead.
For example, `[^fo]` matches any character that is not an `f` or `o`.

### DocValuesFieldExistsQuery, NormsFieldExistsQuery and KnnVectorFieldExistsQuery removed in favor of FieldExistsQuery (LUCENE-10436)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@
import org.junit.runner.RunWith;

/* WARNING: This test does *not* extend LuceneTestCase to prevent static class
* initialization when spawned as subprocess (and please let default codecs alive)! */
* initialization when spawned as a subprocess (and please let default codecs alive)! */

@RunWith(RandomizedRunner.class)
public class TestClassloadingDeadlock extends Assert {
Expand Down
Loading
Loading