[ https://issues.apache.org/jira/browse/MSHADE-156?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17322277#comment-17322277 ]
Matteo Moci edited comment on MSHADE-156 at 4/15/21, 3:40 PM: -------------------------------------------------------------- Using this configuration https://issues.apache.org/jira/browse/MSHADE-156?focusedCommentId=15944705&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15944705 it seems this only happens when strings *start with* the relocation pattern: {code} public static final String A = "de-abc"; //this String is replaced with "shaded.de-abc" public static final String B = "http://de-abc"; //this String is not changed {code} It happens with version 3.2.4 was (Author: mox601): Using this configuration https://issues.apache.org/jira/browse/MSHADE-156?focusedCommentId=15944705&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15944705 it seems this only happens when strings *start with* the relocation pattern: {code} public static final String A = "de-abc"; //this String is replaced with "shaded.de-abc" public static final String B = "http://de-abc"; //this String is not changed {code} > 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.3.4#803005)