org_aspectj_ajdt_ajc_BuildArgParserTestCase_java
org.aspectj.org.eclipse.jdt.internal.compiler.batch.ClasspathJar
@Override
    public List<FileSystem.Classpath> fetchLinkedJars(FileSystem.ClasspathSectionProblemReporter problemReporter) {
        ArrayList<FileSystem.Classpath> arrayList;
        InputStream inputStream;
        block18: {
            inputStream = null;
            this.initialize();
            ArrayList<FileSystem.Classpath> result = new ArrayList<FileSystem.Classpath>();
            ZipEntry manifest = this.zipFile.getEntry("META-INF/MANIFEST.MF");
            if (manifest != null) {
                inputStream = this.zipFile.getInputStream(manifest);
                ManifestAnalyzer analyzer = new ManifestAnalyzer();
                boolean success = analyzer.analyzeManifestContents(inputStream);
                List calledFileNames = analyzer.getCalledFileNames();
                if (problemReporter != null) {
                    if (!success || analyzer.getClasspathSectionsCount() == 1 && calledFileNames == null) {
                        problemReporter.invalidClasspathSection(this.getPath());
                    } else if (analyzer.getClasspathSectionsCount() > 1) {
                        problemReporter.multipleClasspathSections(this.getPath());
                    }
                }
                if (calledFileNames != null) {
                    Iterator calledFilesIterator = calledFileNames.iterator();
                    String directoryPath = this.getPath();
                    int lastSeparator = directoryPath.lastIndexOf(File.separatorChar);
                    directoryPath = directoryPath.substring(0, lastSeparator + 1);
                    while (calledFilesIterator.hasNext()) {
                        result.add(new ClasspathJar(new File(String.valueOf(directoryPath) + (String)calledFilesIterator.next()), this.closeZipFileAtEnd, this.accessRuleSet, this.destinationPath));
                    }
                }
            }
            arrayList = result;
            if (inputStream == null) break block18;
            try {
                inputStream.close();
                this.close();
            }
            catch (IOException iOException) {}
        }
        return arrayList;
        catch (IOException | IllegalArgumentException exception) {
            block19: {
                try {
                    if (inputStream == null) break block19;
                }
                catch (Throwable throwable) {
                    if (inputStream != null) {
                        try {
                            inputStream.close();
                            this.close();
                        }
                        catch (IOException iOException) {}
                    }
                    throw throwable;
                }
                try {
                    inputStream.close();
                    this.close();
                }
                catch (IOException iOException) {}
            }
            return null;
        }
    }
 -> java.util.List.size(): int -> java.util.List.add(java.lang.Object): boolean -> java.util.zip.ZipFile.getEntry(java.lang.String): java.util.zip.ZipEntry
 [CALL] [CALL] [CALL] -> java.util.List.size(): int -> java.util.List.add(java.lang.Object): boolean [EXIT] [EXIT] -> java.util.zip.ZipFile.getEntry(java.lang.String): java.util.zip.ZipEntry [EXIT]