// see bug 372012
char[] fileName = sourceFile.getFileName();
int pkgEnd = CharOperation.lastIndexOf('/', fileName);
if (pkgEnd == -1)
pkgEnd = CharOperation.lastIndexOf(File.separatorChar, fileName);
PackageFragment pkg = null;
if (pkgEnd != -1)
pkg = (PackageFragment) Util.getPackageFragment(sourceFile.getFileName(), pkgEnd, -1 /*no jar separator for java files*/);
if (pkg != null) {
try {
IMarker[] existingMarkers = pkg.resource().findMarkers(IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER, false, IResource.DEPTH_ZERO);
int len = existingMarkers.length;
for (int j=0; j < len; j++) {
if (((Integer)existingMarkers[j].getAttribute(IJavaModelMarker.ID)).intValue() == IProblem.MissingNonNullByDefaultAnnotationOnPackage) {
continue problems; // marker already present
}
}
} catch (CoreException e) {
// marker retrieval failed, cannot do much
if (JavaModelManager.VERBOSE) {
e.printStackTrace();
}
}
IResource tempRes = pkg.resource();
if (tempRes != null) {
resource = tempRes;
}
}
}