Facing OutOfMemory as IsolatedClassloader (plexus-compiler jar) is not closed
after JavacCompiler is done with compilation.
---------------------------------------------------------------------------------------------------------------------------
Key: MAVEN-1867
URL: http://jira.codehaus.org/browse/MAVEN-1867
Project: Maven 1
Issue Type: Bug
Components: core
Affects Versions: 1.2
Environment: Windows 2003 Server
Reporter: kaniska
Priority: Blocker
Attachments: IsolatedClassLoader_Issue.docx
In Eclipse environment for a maven-based project, Auto-build fires Maven-build
which in turn executes CompilerMojo, finally creating an IsolatedClassloader
for each compile call !
IsolatedClassLoader.addURL(URL) line: 42...
JavacCompiler.compile(CompilerConfiguration) line: 141
CompilerMojo(AbstractCompilerMojo).execute() line: 493...
DefaultBuildPluginManager.executeMojo(MavenSession, MojoExecution) line: 105...
MavenImpl.execute(MavenExecutionRequest, IProgressMonitor) ...
MavenBuilder.build(int, Map, IProgressMonitor) line: 153 ....
AutoBuildJob.run(IProgressMonitor) line: 238
So every single change in maven-v4 project creates a new IsolatedClassloader
which is fine.
But the problem is JavacCompiler is not closing the loader which holds huge
number of jars (url points to maven-repo) in its url classpath.
It should use ClassLoaderutil.releaseLoader(..) to unload the jars.
GC does not reclaim the isolatedclassloader instances (not sure why).
As a result, IsolatedClassloader instances consume retains the heap.
Eventually maven-application goes OutOfMemory !
Attached is the heapdump analysis of isolatedclassloader that holds the memory.
This is kind of blocking us from building largescale maven app which requires
good number of jars in development time for compiling the app source at
development time.
Please note that we face this issue at development time whenever developer
making changes in source code as explained in the code-flow above.
Please let us know if more information is required.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira