[102332] JS WAR export exceptions when containing web lib projects with root as source.
diff --git a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/ComponentLoadStrategyImpl.java b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/ComponentLoadStrategyImpl.java index a398b43..495cdbb 100644 --- a/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/ComponentLoadStrategyImpl.java +++ b/plugins/org.eclipse.jst.j2ee/archiveops/org/eclipse/jst/j2ee/internal/archive/operations/ComponentLoadStrategyImpl.java
@@ -92,13 +92,10 @@ outputFolders[i] = ResourcesPlugin.getWorkspace().getRoot().getFolder(outputPath); IPath sourcePath = roots[i].getPath(); - - if( sourcePath.segmentCount() > 1 ) - source = workspaceRoot.getFolder(sourcePath); - else - source = getComponent().getProject(); + boolean sourceIsProject = sourcePath.segmentCount() <= 1; + source = sourceIsProject ? (IResource)getComponent().getProject(): workspaceRoot.getFolder(sourcePath); IVirtualResource[] virtualSources = ComponentCore.createResources(source); - IResource actualResource = virtualSources[0].getUnderlyingResource(); + IResource actualResource = sourceIsProject ? source : virtualSources[0].getUnderlyingResource(); int sourceOffset = actualResource.getProjectRelativePath().segmentCount() - sourcePath.segmentCount(); int runtimeOffset = outputPath.segmentCount() - virtualSources[0].getRuntimePath().segmentCount();