Author: markt Date: Tue Dec 11 14:10:30 2018 New Revision: 1848682 URL: http://svn.apache.org/viewvc?rev=1848682&view=rev Log: Improve fix for duplicate fragment name
Modified: tomcat/trunk/java/org/apache/tomcat/util/descriptor/web/FragmentJarScannerCallback.java Modified: tomcat/trunk/java/org/apache/tomcat/util/descriptor/web/FragmentJarScannerCallback.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/descriptor/web/FragmentJarScannerCallback.java?rev=1848682&r1=1848681&r2=1848682&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/descriptor/web/FragmentJarScannerCallback.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/descriptor/web/FragmentJarScannerCallback.java Tue Dec 11 14:10:30 2018 @@ -79,22 +79,7 @@ public class FragmentJarScannerCallback } } } finally { - fragment.setURL(jar.getJarFileURL()); - if (fragment.getName() == null) { - fragment.setName(fragment.getURL().toString()); - } - fragment.setJarName(extractJarFileName(jar.getJarFileURL())); - if (fragments.containsKey(fragment.getName())) { - // Duplicate. Mark the fragment that has already been found with - // this name as having a duplicate so Tomcat can handle it - // correctly when the fragments are being ordered. - String duplicateName = fragment.getName(); - fragments.get(duplicateName).setDuplicated(true); - // Rename the current fragment so it doesn't clash - fragment.setName(fragment.getURL().toString()); - } else { - fragments.put(fragment.getName(), fragment); - } + addFragment(fragment, jar.getJarFileURL()); } } @@ -135,13 +120,27 @@ public class FragmentJarScannerCallback fragment.setDistributable(true); } } finally { - fragment.setURL(file.toURI().toURL()); - if (fragment.getName() == null) { - fragment.setName(fragment.getURL().toString()); - } - fragment.setJarName(file.getName()); - fragments.put(fragment.getName(), fragment); + addFragment(fragment, file.toURI().toURL()); + } + } + + + private void addFragment(WebXml fragment, URL url) { + fragment.setURL(url); + if (fragment.getName() == null) { + fragment.setName(url.toString()); + } + fragment.setJarName(extractJarFileName(url)); + if (fragments.containsKey(fragment.getName())) { + // Duplicate. Mark the fragment that has already been found with + // this name as having a duplicate so Tomcat can handle it + // correctly when the fragments are being ordered. + String duplicateName = fragment.getName(); + fragments.get(duplicateName).setDuplicated(true); + // Rename the current fragment so it doesn't clash + fragment.setName(url.toString()); } + fragments.put(fragment.getName(), fragment); } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org