maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Altin Papa (JIRA)" <>
Subject [jira] Created: (MASSEMBLY-499) Poor performance in DirectoryArchiver due to unnecessary native calls
Date Tue, 07 Sep 2010 13:42:32 GMT
Poor performance in DirectoryArchiver due to unnecessary native calls

                 Key: MASSEMBLY-499
             Project: Maven 2.x Assembly Plugin
          Issue Type: Bug
    Affects Versions: 2.2-beta-5
         Environment: Unix/Linux
            Reporter: Altin Papa

maven-assembly-plugin calls DirectoryArchiver.copyFile( ArchiveEntry entry, String vPath ),
which calls
ArchiveEntryUtils.chmod( outFile, entry.getMode(), getLogger() );
resulting in a native child Process being forked to do a chmod (on Unix only)

The performance impact on a large assembly is enormous: patching DirectoryArchiver to not
do this resulted in a performance improvement by more than 5 times.
I've raised this with Plexus as

AssemblyFormatUtils should cache the environment, as AssemblyInterpolator does. Both, though,
should use the latest *plexus* CommandLineUtils, as opposed to maven-assembly-plugin's own
version. The plexus class uses System.getenv() (JDK5+) when available. 

Generally, please see if you can review the use of native command calls, esp. in light of
JDK5/6 APIs. Forked native calls had a horrible performance impact on our (large, highly modular)
assembly; which has only been corrected by local patches of maven-assembly/plexus-archiver.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:


View raw message