You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by dj...@apache.org on 2006/05/12 23:37:33 UTC

svn commit: r405886 - in /geronimo/branches/1.1/modules/kernel/src: java/org/apache/geronimo/kernel/classloader/ test-data/ test-data/resourceFinderTest/ test-data/resourceFinderTest/jar1/ test-data/resourceFinderTest/jar2/ test/org/apache/geronimo/ker...

Author: djencks
Date: Fri May 12 14:37:33 2006
New Revision: 405886

URL: http://svn.apache.org/viewcvs?rev=405886&view=rev
Log:
GERONIMO-2009 fix JarFileResourceFinder

Added:
    geronimo/branches/1.1/modules/kernel/src/test-data/
    geronimo/branches/1.1/modules/kernel/src/test-data/resourceFinderTest/
    geronimo/branches/1.1/modules/kernel/src/test-data/resourceFinderTest/jar1/
    geronimo/branches/1.1/modules/kernel/src/test-data/resourceFinderTest/jar1/resource
    geronimo/branches/1.1/modules/kernel/src/test-data/resourceFinderTest/jar2/
    geronimo/branches/1.1/modules/kernel/src/test-data/resourceFinderTest/jar2/resource
    geronimo/branches/1.1/modules/kernel/src/test/org/apache/geronimo/kernel/classloader/
    geronimo/branches/1.1/modules/kernel/src/test/org/apache/geronimo/kernel/classloader/JarFileResourceFinderTest.java
Modified:
    geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/classloader/JarFileResourceFinder.java

Modified: geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/classloader/JarFileResourceFinder.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/classloader/JarFileResourceFinder.java?rev=405886&r1=405885&r2=405886&view=diff
==============================================================================
--- geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/classloader/JarFileResourceFinder.java (original)
+++ geronimo/branches/1.1/modules/kernel/src/java/org/apache/geronimo/kernel/classloader/JarFileResourceFinder.java Fri May 12 14:37:33 2006
@@ -283,6 +283,9 @@
             if (iterator == null) {
                 return;
             }
+            if (next != null) {
+                return;
+            }
 
             try {
                 while (iterator.hasNext()) {

Added: geronimo/branches/1.1/modules/kernel/src/test-data/resourceFinderTest/jar1/resource
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/test-data/resourceFinderTest/jar1/resource?rev=405886&view=auto
==============================================================================
    (empty)

Added: geronimo/branches/1.1/modules/kernel/src/test-data/resourceFinderTest/jar2/resource
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/test-data/resourceFinderTest/jar2/resource?rev=405886&view=auto
==============================================================================
    (empty)

Added: geronimo/branches/1.1/modules/kernel/src/test/org/apache/geronimo/kernel/classloader/JarFileResourceFinderTest.java
URL: http://svn.apache.org/viewcvs/geronimo/branches/1.1/modules/kernel/src/test/org/apache/geronimo/kernel/classloader/JarFileResourceFinderTest.java?rev=405886&view=auto
==============================================================================
--- geronimo/branches/1.1/modules/kernel/src/test/org/apache/geronimo/kernel/classloader/JarFileResourceFinderTest.java (added)
+++ geronimo/branches/1.1/modules/kernel/src/test/org/apache/geronimo/kernel/classloader/JarFileResourceFinderTest.java Fri May 12 14:37:33 2006
@@ -0,0 +1,52 @@
+/**
+ *
+ * Copyright 2006 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+
+package org.apache.geronimo.kernel.classloader;
+
+import java.net.URL;
+import java.util.Enumeration;
+
+import junit.framework.TestCase;
+
+/**
+ * @version $Rev:$ $Date:$
+ */
+public class JarFileResourceFinderTest extends TestCase {
+
+    /**
+     * There are 2 "jars" with a "resource" inside.  Make sure the enumeration has exactly 2 elements and
+     * that hasMoreElements() doesn't advance the iterator.
+     *
+     * @throws Exception
+     */
+    public void testResourceEnumeration() throws Exception {
+        ClassLoader cl = this.getClass().getClassLoader();
+        URL jar1 = cl.getResource("resourceFinderTest/jar1/");
+        URL jar2 = cl.getResource("resourceFinderTest/jar2/");
+        JarFileResourceFinder resourceFinder = new JarFileResourceFinder(new URL[] {jar1, jar2});
+        Enumeration enumeration = resourceFinder.findResources("resource");
+        assertTrue(enumeration.hasMoreElements());
+        assertTrue(enumeration.hasMoreElements());
+        URL resource1 = (URL) enumeration.nextElement();
+        assertNotNull(resource1);
+        assertTrue(enumeration.hasMoreElements());
+        assertTrue(enumeration.hasMoreElements());
+        URL resource2 = (URL) enumeration.nextElement();
+        assertNotNull(resource2);
+        assertFalse(enumeration.hasMoreElements());
+    }
+}