[313399] Opener of Archive didn't close a file
diff --git a/plugins/org.eclipse.jst.j2ee/META-INF/MANIFEST.MF b/plugins/org.eclipse.jst.j2ee/META-INF/MANIFEST.MF index d83f096..5dc6dc4 100644 --- a/plugins/org.eclipse.jst.j2ee/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.jst.j2ee/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name.0 Bundle-SymbolicName: org.eclipse.jst.j2ee; singleton:=true -Bundle-Version: 1.1.213.qualifier +Bundle-Version: 1.1.214.qualifier Bundle-Activator: org.eclipse.jst.j2ee.internal.plugin.J2EEPlugin Bundle-Vendor: %Bundle-Vendor.0 Bundle-Localization: plugin
diff --git a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentLoadStrategyImpl.java b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentLoadStrategyImpl.java index caf6426..e9cb745 100644 --- a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentLoadStrategyImpl.java +++ b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/EARComponentLoadStrategyImpl.java
@@ -121,19 +121,25 @@ componentArtifactEdit = ArtifactEditRegistryReader.instance().getArtifactEdit(J2EEProjectUtilities.JCA).createArtifactEditForRead(referencedComponent); } if (null != componentArtifactEdit) { - Archive archive = ((EnterpriseArtifactEdit) componentArtifactEdit).asArchive(exportSource, includeClasspathComponents); - if (referencedComponent.isBinary()) { - artifactEditsToDispose.add(componentArtifactEdit); - archive.setLoadingContainer(getContainer()); - binaryComponentURIsToDiskFileMap.put(archive.getOriginalURI(), diskFile); + Archive archive = null; + try { + archive = ((EnterpriseArtifactEdit) componentArtifactEdit).asArchive(exportSource, includeClasspathComponents); + if (referencedComponent.isBinary()) { + artifactEditsToDispose.add(componentArtifactEdit); + archive.setLoadingContainer(getContainer()); + binaryComponentURIsToDiskFileMap.put(archive.getOriginalURI(), diskFile); + } + archive.setURI(earArtifactEdit.getModuleURI(referencedComponent)); + filesHolder.addFile(archive); + isModule = true; + if (addClasspathComponentDependencies) { + addClasspathComponentDependencies(referencedComponent); + } + } finally { + if(archive != null){ + archivesToClose.add(archive); + } } - archive.setURI(earArtifactEdit.getModuleURI(referencedComponent)); - filesHolder.addFile(archive); - isModule = true; - if (addClasspathComponentDependencies) { - addClasspathComponentDependencies(referencedComponent); - } - archivesToClose.add(archive); } } catch (OpenFailureException oe) { J2EEPlugin.logError(oe);