Skip to content

Commit 7e10b92

Browse files
committed
Fix javac memory leak
See apache/maven-mvnd#897
1 parent 01e93cc commit 7e10b92

File tree

2 files changed

+31
-3
lines changed

2 files changed

+31
-3
lines changed

plexus-compilers/plexus-compiler-javac/src/main/java/org/codehaus/plexus/compiler/javac/JavacCompiler.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -443,6 +443,11 @@ else if ( !suppressSource( config ) )
443443
args.add( value );
444444
}
445445

446+
if ( !config.isFork() )
447+
{
448+
args.add( "-XDuseUnsharedTable=true" );
449+
}
450+
446451
return args.toArray( new String[0] );
447452
}
448453

plexus-compilers/plexus-compiler-javac/src/test/java/org/codehaus/plexus/compiler/javac/AbstractJavacCompilerTest.java

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -326,6 +326,9 @@ public void testJRuntimeArguments()
326326
expectedArguments.add( "-source" );
327327
expectedArguments.add( "1.3" );
328328

329+
// unshared table
330+
expectedArguments.add( "-XDuseUnsharedTable=true" );
331+
329332
// customCompilerArguments
330333
Map<String, String> customCompilerArguments = new LinkedHashMap<>();
331334
customCompilerArguments.put( "-J-Duser.language=en_us", null );
@@ -367,6 +370,9 @@ public void testModulePathAnnotations() throws Exception
367370
expectedArguments.add( "--release" );
368371
expectedArguments.add( "9" );
369372

373+
// unshared table
374+
expectedArguments.add( "-XDuseUnsharedTable=true" );
375+
370376
internalTest( compilerConfiguration, expectedArguments, source);
371377
}
372378

@@ -395,6 +401,9 @@ public void testModulePath() throws Exception
395401
expectedArguments.add( "-source" );
396402
expectedArguments.add( "1.3" );
397403

404+
// unshared table
405+
expectedArguments.add( "-XDuseUnsharedTable=true" );
406+
398407
internalTest( compilerConfiguration, expectedArguments );
399408
}
400409

@@ -421,6 +430,9 @@ public void testModuleVersion()
421430
expectedArguments.add( "--module-version" );
422431
expectedArguments.add( "1.2.0-SNAPSHOT" );
423432

433+
// unshared table
434+
expectedArguments.add( "-XDuseUnsharedTable=true" );
435+
424436
internalTest( compilerConfiguration, expectedArguments );
425437
}
426438

@@ -440,7 +452,10 @@ public void testReleaseVersion()
440452
compilerConfiguration.setReleaseVersion( "6" );
441453
expectedArguments.add( "--release" );
442454
expectedArguments.add( "6" );
443-
455+
456+
// unshared table
457+
expectedArguments.add( "-XDuseUnsharedTable=true" );
458+
444459
internalTest( compilerConfiguration, expectedArguments );
445460
}
446461

@@ -465,7 +480,10 @@ public void testFailOnWarning()
465480
expectedArguments.add( "1.1" );
466481
expectedArguments.add( "-source" );
467482
expectedArguments.add( "1.3" );
468-
483+
484+
// unshared table
485+
expectedArguments.add( "-XDuseUnsharedTable=true" );
486+
469487
internalTest( compilerConfiguration, expectedArguments );
470488
}
471489

@@ -494,7 +512,10 @@ public void testMultipleAddExports()
494512
compilerConfiguration.addCompilerCustomArgument( "--add-exports", "FROM-MOD/package2=OTHER-MOD" );
495513
expectedArguments.add( "--add-exports" );
496514
expectedArguments.add( "FROM-MOD/package2=OTHER-MOD" );
497-
515+
516+
// unshared table
517+
expectedArguments.add( "-XDuseUnsharedTable=true" );
518+
498519
internalTest( compilerConfiguration, expectedArguments );
499520
}
500521

@@ -639,5 +660,7 @@ private void populateArguments( CompilerConfiguration compilerConfiguration, Lis
639660
expectedArguments.add( "foo" );
640661

641662
expectedArguments.add( "bar" );
663+
664+
expectedArguments.add( "-XDuseUnsharedTable=true" );
642665
}
643666
}

0 commit comments

Comments
 (0)