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 |
} |