You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Dan Ziemba (Jira)" <ji...@apache.org> on 2022/05/28 03:22:00 UTC
[jira] [Commented] (MSHADE-156) shade plugin is transforming also strings that are not supposed to be transformed
[ https://issues.apache.org/jira/browse/MSHADE-156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17543403#comment-17543403 ]
Dan Ziemba commented on MSHADE-156:
-----------------------------------
Probably related to the last line of SimpleRelocator::canRelocatePath. Seems like the `path.startsWith( pathPattern )` needs to be a bit more complicated, like checking that is starts with the pattern immediately followed by period or slash?
> shade plugin is transforming also strings that are not supposed to be transformed
> ---------------------------------------------------------------------------------
>
> Key: MSHADE-156
> URL: https://issues.apache.org/jira/browse/MSHADE-156
> Project: Maven Shade Plugin
> Issue Type: Bug
> Affects Versions: 2.1
> Reporter: Neeme Praks
> Priority: Major
> Fix For: backlog
>
>
> I'm shading several third party libraries into a single JAR. In the context of this issue, there are two important libraries:
> 1. com.nothome:javaxdelta:2.0.1 - this library is in "at.spardat.xma.xdelta" package.
> 2. ch.qos.logback:logback-classic:1.0.11 - in this library, in class ch.qos.logback.classic.spi.StackTraceElementProxy, there is a method to convert stack trace elements into strings:
> {code}
> public String getSTEAsString() {
> if (steAsString == null) {
> steAsString = "at " + ste.toString();
> }
> return steAsString;
> }
> {code}
> I use "org.myorgname.appname.shaded" package for shading.
> During shading, the constant "at " is replaced with "org.myorgname.appname.shaded.at" -- shade plugin thinks that the "at" in the beginning of that string is a package name and shades it.
> This results in an unfortunate side-effect: all logged stack traces now look like this:
> {noformat}
> Caused by: java.util.zip.ZipException: error in opening zip file
> org.myorgname.appname.shaded.at java.util.zip.ZipFile.open(Native Method) ~[na:1.6.0_19]
> org.myorgname.appname.shaded.at java.util.zip.ZipFile.<init>(ZipFile.java:114) ~[na:1.6.0_19]
> org.myorgname.appname.shaded.at java.util.zip.ZipFile.<init>(ZipFile.java:131) ~[na:1.6.0_19]
> {noformat}
> Possible fixes:
> * instead of just checking the first part of the package (at), check for the full package (at.spardat.xma.xdelta).
> * allow to configure shade plugin to ignore certain string constants in certain classes (this would solve also some other issues we have with shade plugin being too eager).
> * both of the above.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)