View | Details | Raw Unified | Return to bug 402005
Collapse All | Expand All

(-)src/org/eclipse/pde/internal/launching/sourcelookup/PDESourceLookupQuery.java (-20 / +20 lines)
Lines 27-32 Link Here
27
public class PDESourceLookupQuery implements ISafeRunnable {
27
public class PDESourceLookupQuery implements ISafeRunnable {
28
28
29
	protected static String OSGI_CLASSLOADER = "org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader"; //$NON-NLS-1$
29
	protected static String OSGI_CLASSLOADER = "org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader"; //$NON-NLS-1$
30
	protected static String OSGI_CLASSLOADER2 = "org.eclipse.osgi.internal.loader.ModuleClassLoader"; //$NON-NLS-1$
30
	private static String LEGACY_ECLIPSE_CLASSLOADER = "org.eclipse.core.runtime.adaptor.EclipseClassLoader"; //$NON-NLS-1$
31
	private static String LEGACY_ECLIPSE_CLASSLOADER = "org.eclipse.core.runtime.adaptor.EclipseClassLoader"; //$NON-NLS-1$
31
	private static String MAIN_CLASS = "org.eclipse.core.launcher.Main"; //$NON-NLS-1$
32
	private static String MAIN_CLASS = "org.eclipse.core.launcher.Main"; //$NON-NLS-1$
32
	private static String MAIN_PLUGIN = "org.eclipse.platform"; //$NON-NLS-1$
33
	private static String MAIN_PLUGIN = "org.eclipse.platform"; //$NON-NLS-1$
Lines 80-85 Link Here
80
					} else {
81
					} else {
81
						fResult = findSourceElement(classLoaderObject, sourcePath);
82
						fResult = findSourceElement(classLoaderObject, sourcePath);
82
					}
83
					}
84
				} else if (OSGI_CLASSLOADER2.equals(type.getName())) {
85
					fResult = findSourceElement(classLoaderObject, sourcePath);
83
				} else if (LEGACY_ECLIPSE_CLASSLOADER.equals(type.getName())) {
86
				} else if (LEGACY_ECLIPSE_CLASSLOADER.equals(type.getName())) {
84
					fResult = findSourceElement_legacy(classLoaderObject, sourcePath);
87
					fResult = findSourceElement_legacy(classLoaderObject, sourcePath);
85
				} else if (MAIN_CLASS.equals(declaringTypeName)) {
88
				} else if (MAIN_CLASS.equals(declaringTypeName)) {
Lines 133-160 Link Here
133
	protected Object findSourceElement(IJavaObject object, String typeName) throws CoreException {
136
	protected Object findSourceElement(IJavaObject object, String typeName) throws CoreException {
134
		IJavaObject manager = getObject(object, "manager", false); //$NON-NLS-1$
137
		IJavaObject manager = getObject(object, "manager", false); //$NON-NLS-1$
135
		if (manager != null) {
138
		if (manager != null) {
136
			IJavaObject data = getObject(manager, "data", false); //$NON-NLS-1$
139
			// search manager's class path for location
137
			if (data != null) {
140
			Object result = searchClasspathEntries(manager, typeName);
138
				// search manager's class path for location
141
			if (result != null) {
139
				Object result = searchClasspathEntries(manager, typeName);
142
				return result;
140
				if (result != null) {
143
			}
141
					return result;
144
			// then check its fragments
142
				}
145
			IJavaObject frgArray = getObject(manager, "fragments", false); //$NON-NLS-1$
143
				// then check its fragments
146
			if (frgArray instanceof IJavaArray) {
144
				IJavaObject frgArray = getObject(manager, "fragments", false); //$NON-NLS-1$
147
				IJavaArray fragments = (IJavaArray) frgArray;
145
				if (frgArray instanceof IJavaArray) {
148
				for (int i = 0; i < fragments.getLength(); i++) {
146
					IJavaArray fragments = (IJavaArray) frgArray;
149
					IJavaObject fragment = (IJavaObject) fragments.getValue(i);
147
					for (int i = 0; i < fragments.getLength(); i++) {
150
					if (!fragment.isNull()) {
148
						IJavaObject fragment = (IJavaObject) fragments.getValue(i);
151
						// search fragment class path
149
						if (!fragment.isNull()) {
152
						result = searchClasspathEntries(fragment, typeName);
150
							// search fragment class path
153
						if (result != null) {
151
							result = searchClasspathEntries(fragment, typeName);
154
							return result;
152
							if (result != null) {
153
								return result;
154
							}
155
						}
155
						}
156
157
					}
156
					}
157
158
				}
158
				}
159
			}
159
			}
160
		}
160
		}

Return to bug 402005