ZipEntry classEntry = null; while (classEntry == null && entries.hasMoreElements()) { if (Thread.interrupted()) throw new InterruptedException(); ZipEntry entry = (ZipEntry) entries.nextElement(); if (entry.getName().endsWith(".class")) classEntry = entry;
JavaClass parsedClass = getNextNestedClass(); if ( parsedClass == null ) { while (entries.hasMoreElements()) { if (Thread.interrupted()) throw new InterruptedException(); ZipEntry entry = (ZipEntry) entries.nextElement(); String name = entry.getName(); if (name.endsWith(".class")) { try { parsedClass =  new ClassParser(zipFile.getInputStream(entry), name).parse(); break; } catch (ClassFormatException e) { throw new ClassFormatException("Invalid class file format for " + fileName + ":" + name + ": " + e.getMessage()); } } else if ( name.endsWith(".jar") || name.endsWith( ".zip" ) ) { setZipStream(new ZipInputStream(zipFile.getInputStream(entry)), name ); parsedClass = getNextNestedClass(); if ( parsedClass != null ) { break; } }  }
	public JavaClass getNextClass() throws IOException, InterruptedException {		ZipEntry classEntry = null;		while (classEntry == null && entries.hasMoreElements()) {			if (Thread.interrupted())				throw new InterruptedException();			ZipEntry entry = (ZipEntry) entries.nextElement();			if (entry.getName().endsWith(".class"))				classEntry = entry;		}		if (classEntry == null)			return null;		String fullEntryName = fileName + ":" + classEntry.getName();		try {			return new ClassParser(zipFile.getInputStream(classEntry), classEntry.getName()).parse();		} catch (ClassFormatException e) {			throw new ClassFormatException("Invalid class file format for " +				fullEntryName + ": " + e.getMessage());		}	}