Community
Participate
Working Groups
If I just IJavaProject.findPackageFragment(path) where the path is a package fragment root (but it is not the java project, it is an actual root source folder in the project), it returns null instead of an IPackageFragment for the default package.
Some debugging info for you: In NameLookup.findPackageFragment(path) at: IJavaElement fromFactory = JavaCore.create(possibleFragment); if (fromFactory == null) { return null; } if (fromFactory instanceof IPackageFragment) { return (IPackageFragment) fromFactory; } else if (fromFactory instanceof IJavaProject) { // default package in a default root JavaProject project = (JavaProject) fromFactory; The fromFactory that is returned from JavaCore.create is an IPackageFragmentRoot, so it drops through the following if's and returns null.
Thanks for debugging it. Fixed NameLookup.findPackageFragment(IPath) to handle this case. Added regression test NameLookupTests2.testFindDefaultPackageFragmentInNonDefaultRoot()
Verified in 200405281200 that the change is in the code