Index: SimpleJarManager.java =================================================================== RCS file: /cvs/core/bootstrap/src/org/netbeans/Attic/SimpleJarManager.java,v retrieving revision 1.1.2.1 diff -u -r1.1.2.1 SimpleJarManager.java --- SimpleJarManager.java 11 Feb 2003 21:31:45 -0000 1.1.2.1 +++ SimpleJarManager.java 13 Feb 2003 14:58:41 -0000 @@ -71,11 +71,17 @@ public Iterator packages() { return new EnumIterator(jar.entries()) { + Set known = new HashSet(); + protected Object process(Object o) { JarEntry e = (JarEntry)o; if (e.isDirectory()) { - return e.getName(); + return null; } else { + String itm = e.getName(); + int slash=itm.lastIndexOf('/'); + String pkg = itm.substring(0, slash+1); + if (known.add(pkg)) return pkg; return null; } } @@ -131,10 +137,10 @@ private final Enumeration e; private Object lookahead; + boolean slurped; EnumIterator(Enumeration e) { this.e = e; - slurp(); } /** @@ -145,10 +151,12 @@ protected abstract Object process(Object o); public boolean hasNext() { + if (!slurped) slurp(); return lookahead != null; } public Object next() { + if (!slurped) slurp(); if (lookahead == null) throw new NoSuchElementException(); Object o = lookahead; slurp(); @@ -160,6 +168,7 @@ } private void slurp() { + slurped = true; while (e.hasMoreElements()) { lookahead = process(e.nextElement()); if (lookahead != null) {