while (entries.hasMoreElements()) { if (Thread.interrupted()) throw new InterruptedException(); ZipEntry entry = (ZipEntry) entries.nextElement(); String name = entry.getName(); if (name.endsWith(".class")) { try { parsedClass = parseClass(fileName, zipFile.getInputStream(entry), name); break; } catch (ClassFormatException e) { throw new ClassFormatException("Invalid class file format for " + fileName + ":" + name + ": " + e.getMessage());
try { String entryName = zipEntry.getName(); String fileExtension = getFileExtension(entryName); if (fileExtension != null) { if (fileExtension.equals(".class")) { return parseClass(url.toString(), new NoCloseInputStream(zipInputStream), entryName); } else if (archiveExtensionSet.contains(fileExtension)) {  } else if (fileExtension.equals(".java")) { containsSourceFiles = true; }
		public JavaClass getNextClass() throws IOException, InterruptedException {			JavaClass parsedClass = getNextNestedClass();			if (parsedClass != null)				return parsedClass;			while (entries.hasMoreElements()) {				if (Thread.interrupted()) throw new InterruptedException();				ZipEntry entry = (ZipEntry) entries.nextElement();				String name = entry.getName();				if (name.endsWith(".class")) {					try {						parsedClass = parseClass(fileName, zipFile.getInputStream(entry), name);						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;					}				} else if (name.endsWith(".java"))					containsSourceFiles = true;			}			return parsedClass;		}