Should this change be applied to the M2 branch also?

Rick

On 2/14/2011 1:22 AM, [email protected] wrote:
Author: xuhaihong
Date: Mon Feb 14 09:22:07 2011
New Revision: 1070414

URL: http://svn.apache.org/viewvc?rev=1070414&view=rev
Log:
GERONIMO-5810 Limit tld scanning scope in BundleTldScanner

Modified:
     
geronimo/server/trunk/plugins/jasper/geronimo-jasper-builder/src/main/java/org/apache/geronimo/jasper/deployment/BundleTldScanner.java
     
geronimo/server/trunk/plugins/jasper/geronimo-jasper-builder/src/main/java/org/apache/geronimo/jasper/deployment/JarFileTldScanner.java

Modified: 
geronimo/server/trunk/plugins/jasper/geronimo-jasper-builder/src/main/java/org/apache/geronimo/jasper/deployment/BundleTldScanner.java
URL: 
http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jasper/geronimo-jasper-builder/src/main/java/org/apache/geronimo/jasper/deployment/BundleTldScanner.java?rev=1070414&r1=1070413&r2=1070414&view=diff
==============================================================================
--- 
geronimo/server/trunk/plugins/jasper/geronimo-jasper-builder/src/main/java/org/apache/geronimo/jasper/deployment/BundleTldScanner.java
 (original)
+++ 
geronimo/server/trunk/plugins/jasper/geronimo-jasper-builder/src/main/java/org/apache/geronimo/jasper/deployment/BundleTldScanner.java
 Mon Feb 14 09:22:07 2011
@@ -46,24 +46,29 @@ public class BundleTldScanner {
              throw new IllegalArgumentException("Expected DeployableBundle");
          }
          Bundle bundle = ((DeployableBundle) deployable).getBundle();
-
+
          List<URL>  modURLs = new ArrayList<URL>();
-        Enumeration e = bundle.findEntries("WEB-INF/", "*.tld", true);
+        Enumeration<URL>  e = bundle.findEntries("WEB-INF/", "*.tld", true);
          if (e != null) {
              while (e.hasMoreElements()) {
-                modURLs.add((URL) e.nextElement());
+                URL tldURL = e.nextElement();
+                String tldPath = tldURL.getPath();
+                if (tldPath.startsWith("/WEB-INF/classes") || tldPath.startsWith("/WEB-INF/lib") || 
(tldPath.startsWith("/WEB-INF/tags")&&  !tldPath.endsWith("implicit.tld"))) {
+                    continue;
+                }
+                modURLs.add(e.nextElement());
              }
          }
-
+
          ServiceReference reference = 
bundle.getBundleContext().getServiceReference(PackageAdmin.class.getName());
          PackageAdmin packageAdmin = (PackageAdmin) 
bundle.getBundleContext().getService(reference);
-
+
          BundleResourceFinder resourceFinder = new BundleResourceFinder(packageAdmin, bundle, 
"META-INF/", ".tld");
          modURLs.addAll(resourceFinder.find());
-
+
          bundle.getBundleContext().ungetService(reference);

          return modURLs;
      }
-
+
  }

Modified: 
geronimo/server/trunk/plugins/jasper/geronimo-jasper-builder/src/main/java/org/apache/geronimo/jasper/deployment/JarFileTldScanner.java
URL: 
http://svn.apache.org/viewvc/geronimo/server/trunk/plugins/jasper/geronimo-jasper-builder/src/main/java/org/apache/geronimo/jasper/deployment/JarFileTldScanner.java?rev=1070414&r1=1070413&r2=1070414&view=diff
==============================================================================
--- 
geronimo/server/trunk/plugins/jasper/geronimo-jasper-builder/src/main/java/org/apache/geronimo/jasper/deployment/JarFileTldScanner.java
 (original)
+++ 
geronimo/server/trunk/plugins/jasper/geronimo-jasper-builder/src/main/java/org/apache/geronimo/jasper/deployment/JarFileTldScanner.java
 Mon Feb 14 09:22:07 2011
@@ -38,7 +38,7 @@ import org.slf4j.Logger;
  import org.slf4j.LoggerFactory;

  public class JarFileTldScanner {
-
+
      private static final Logger log = 
LoggerFactory.getLogger(JarFileTldScanner.class);

      /**
@@ -50,7 +50,7 @@ public class JarFileTldScanner {
       */
      public List<URL>  scanModule(WebModule webModule) throws 
DeploymentException {
          log.debug("scanModule( " + webModule.getName() + " ): Entry");
-
+
          Deployable deployable = webModule.getDeployable();
          if (!(deployable instanceof DeployableJarFile)) {
              throw new IllegalArgumentException("Expected DeployableJarFile");
@@ -61,7 +61,11 @@ public class JarFileTldScanner {
              Enumeration<JarEntry>  entries = jarFile.entries();
              while (entries.hasMoreElements()) {
                  JarEntry jarEntry = entries.nextElement();
-                if (jarEntry.getName().startsWith("WEB-INF/")&&  
jarEntry.getName().endsWith(".tld")) {
+                if(jarEntry.getName().endsWith(".tld")) {
+                    String jarEntryName = jarEntry.getName();
+                    if (jarEntryName.startsWith("WEB-INF/classes") || 
jarEntryName.startsWith("WEB-INF/lib") || (jarEntryName.startsWith("WEB-INF/tags")&&  
!jarEntryName.endsWith("implicit.tld"))) {
+                        continue;
+                    }
                      File targetFile = 
webModule.getEarContext().getTargetFile(webModule.resolve(createURI(jarEntry.getName())));
                      if (targetFile != null) {
                          modURLs.add(targetFile.toURI().toURL());
@@ -97,7 +101,7 @@ public class JarFileTldScanner {
       */
      private List<URL>  scanJAR(JarFile jarFile, String prefix) throws 
DeploymentException {
          log.debug("scanJAR( " + jarFile.getName() + " ): Entry");
-
+
          List<URL>  jarURLs = new ArrayList<URL>();
          try {
              Enumeration<JarEntry>  entries = jarFile.entries();
@@ -186,7 +190,7 @@ public class JarFileTldScanner {
          log.debug("scanDirectory() Exit: URL[" + dirURLs.size() + "]: " + 
dirURLs.toString());
          return dirURLs;
      }
-
+
      private static URI createURI(String path) throws URISyntaxException {
          path = path.replaceAll(" ", "%20");
          return new URI(path);




Reply via email to