Uploaded image for project: 'Maven Compiler Plugin'
  1. Maven Compiler Plugin
  2. MCOMPILER-133

Facing OutOfMemory as IsolatedClassloader (plexus-compiler jar) is not closed after JavacCompiler is done with compilation.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Closed
    • Blocker
    • Resolution: Won't Fix
    • None
    • None
    • None
    • Windows 2003 Server

    Description

      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.

      Attachments

        Activity

          People

            Unassigned Unassigned
            kaniska kaniska
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: