You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xbean-scm@geronimo.apache.org by rm...@apache.org on 2015/01/26 15:10:39 UTC
svn commit: r1654809 -
/geronimo/xbean/trunk/xbean-finder/src/main/java/org/apache/xbean/finder/archive/JarArchive.java
Author: rmannibucau
Date: Mon Jan 26 14:10:38 2015
New Revision: 1654809
URL: http://svn.apache.org/r1654809
Log:
XBEAN-277 recursivity = issues when we don't know jar sizes which is likely the case so removing it
Modified:
geronimo/xbean/trunk/xbean-finder/src/main/java/org/apache/xbean/finder/archive/JarArchive.java
Modified: geronimo/xbean/trunk/xbean-finder/src/main/java/org/apache/xbean/finder/archive/JarArchive.java
URL: http://svn.apache.org/viewvc/geronimo/xbean/trunk/xbean-finder/src/main/java/org/apache/xbean/finder/archive/JarArchive.java?rev=1654809&r1=1654808&r2=1654809&view=diff
==============================================================================
--- geronimo/xbean/trunk/xbean-finder/src/main/java/org/apache/xbean/finder/archive/JarArchive.java (original)
+++ geronimo/xbean/trunk/xbean-finder/src/main/java/org/apache/xbean/finder/archive/JarArchive.java Mon Jan 26 14:10:38 2015
@@ -98,29 +98,28 @@ public class JarArchive implements Archi
}
private boolean advance() {
- if (next != null) return true;
-
- if (!stream.hasMoreElements()) return false;
-
- final JarEntry entry = stream.nextElement();
- final String entryName = entry.getName();
-
- if (entry.isDirectory() || !entryName.endsWith(".class")) {
- return advance();
+ if (next != null) {
+ return true;
}
+ while (stream.hasMoreElements()) {
+ final JarEntry entry = stream.nextElement();
+ final String entryName = entry.getName();
+ if (entry.isDirectory() || !entryName.endsWith(".class")) {
+ continue;
+ }
+
+ String className = entryName;
+ if (entryName.endsWith(".class")) {
+ className = className.substring(0, className.length() - 6);
+ }
+ if (className.contains(".")) {
+ continue;
+ }
- String className = entryName;
- if (entryName.endsWith(".class")) {
- className = className.substring(0, className.length() - 6);
+ next = new ClassEntry(entry, className.replace('/', '.'));
+ return true;
}
-
- if (className.contains(".")) {
- return advance();
- }
-
- next = new ClassEntry(entry, className.replace('/', '.'));
-
- return true;
+ return false;
}
public boolean hasNext() {