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

Reply via email to