Bug 327579 - Support alternate source attachment layout for JRE detection
diff --git a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMType.java b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMType.java
index c2ffa23..3dbd1a8 100644
--- a/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMType.java
+++ b/org.eclipse.jdt.launching/launching/org/eclipse/jdt/internal/launching/StandardVMType.java
@@ -250,6 +250,22 @@
 		IPath result = checkForJ9LibrarySource(libLocation);
 		if (result != null)
 			return result;
+		// check for <lib>-src.jar pattern
+		IPath libName = new Path(libLocation.getName());
+		String extension = libName.getFileExtension();
+		String prefix = libName.removeFileExtension().lastSegment();
+		if (extension != null) {
+			IPath srcPath = new Path(libLocation.getPath());
+			srcPath = srcPath.removeLastSegments(1);
+			StringBuffer buf = new StringBuffer();
+			buf.append(prefix);
+			buf.append("-src."); //$NON-NLS-1$
+			buf.append(extension);
+			srcPath = srcPath.append(buf.toString());
+			if (srcPath.toFile().exists()) {
+				return srcPath;
+			}
+		}
 		setDefaultRootPath(""); //$NON-NLS-1$
 		return Path.EMPTY; 
 	}