[ 
https://issues.apache.org/jira/browse/MDEP-651?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Olivier Lamy closed MDEP-651.
-----------------------------
    Resolution: Fixed

pr merged

> unpack-dependencies should warn when it overrides extracted files on macos 
> (case insensitive FS)
> ------------------------------------------------------------------------------------------------
>
>                 Key: MDEP-651
>                 URL: https://issues.apache.org/jira/browse/MDEP-651
>             Project: Maven Dependency Plugin
>          Issue Type: Wish
>          Components: unpack-dependencies
>    Affects Versions: 3.1.1
>            Reporter: Hasnae Rehioui
>            Assignee: Maarten Mulders
>            Priority: Major
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> *Background :*
> We are upgrading to a recent version of aspose-imaging and ran into an issue 
> with our `unpack-dependencies` configuration when ran locally *on macos*
> This is affecting our dev loop mostly, you can reproduce it with 
> {code:java}
> git clone https://github.com/viqueen/maven-playground
> cd maven-playground
> mvn test{code}
> long story short :
> `maven-dependency-plugin` has the `unpack-dependencies` mojo that relies on 
> plexus un-archiver which in a file system like mac (not case sensitive) , 
> might end up overriding files , leading in some cases to a corrupted class 
> path , aspose-imaging library is an example of that : it contains classes and 
> interfaces named as follow : com.aspose.internal.imaging.gq/aq (interface) , 
> com.aspose.internal.imaging.gq/aQ (class implementing the interface)  , 
> notice the case sensitive naming
> so on mac , the plugin will override the aq interface with the content of aQ 
> type , leading to a NoClassDefFoundError because the file name and its 
> content do not match
> {code:java}
> java.lang.NoClassDefFoundError: com/aspose/imaging/internal/gq/aq (wrong 
> name: com/aspose/imaging/internal/gq/aQ)
> at java.lang.ClassLoader.defineClass1(Native Method)
> at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
> at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
> at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
> {code}
> *Workaround :*
> turns out our project config no longer requires unpacking dependencies so we 
> disabled the thing
> *Suggestion :*
> not sure this is even fixable , but would be nice to have some debug / 
> warning logs that it is happening so developers can diagnose errors more 
> easily; basically throw in some love onto 
> [https://github.com/viqueen/plexus-archiver/blob/master/src/main/java/org/codehaus/plexus/archiver/AbstractUnArchiver.java#L346]
> in our particular use case , we are consuming the plugin through 
> [https://bitbucket.org/atlassian/amps/src/903a1ce408da5b8500ed0d7e0e5701eb83d8cde4/amps-maven-plugin/src/main/java/com/atlassian/maven/plugins/amps/MavenGoals.java?at=8.0-stable&fileviewer=file-view-default#MavenGoals.java-458]
>  , these internals are not exactly common knowledge and the logs were not 
> helping either, devs knew it was FS related though just not clear on what 
> triggers the problem
> so optionally failing the build if/when it happens could point our devs on 
> the right track much faster
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to