You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2018/12/11 14:10:30 UTC

svn commit: r1848682 - /tomcat/trunk/java/org/apache/tomcat/util/descriptor/web/FragmentJarScannerCallback.java

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-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org