Bug 274023: [build path] nested source folder on build path rendered with lib icon
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java
index 213c24f..f9233e9 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/packageview/PackageExplorerContentProvider.java
@@ -641,8 +641,9 @@
postRefresh(parent, PARENT, element, runnables);
return true;
- } else if (element instanceof IPackageFragmentRoot) {
- // PFR can show up twice (in library container and as resource at original location)
+ } else if (element instanceof IPackageFragmentRoot
+ && ((IPackageFragmentRoot)element).getKind() != IPackageFragmentRoot.K_SOURCE) {
+ // libs and class folders can show up twice (in library container and as resource at original location)
IResource resource= element.getResource();
if (resource != null)
postRemove(resource, runnables);
@@ -681,8 +682,9 @@
}
return true;
} else {
- if (element instanceof IPackageFragmentRoot) {
- // PFR can show up twice (in library container or under project, and as resource at original location)
+ if (element instanceof IPackageFragmentRoot
+ && ((IPackageFragmentRoot)element).getKind() != IPackageFragmentRoot.K_SOURCE) {
+ // libs and class folders can show up twice (in library container or under project, and as resource at original location)
IResource resource= element.getResource();
if (resource != null) {
Object resourceParent= super.internalGetParent(resource);
diff --git a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/StandardJavaElementContentProvider.java b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/StandardJavaElementContentProvider.java
index 97ca82d..31840ec 100644
--- a/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/StandardJavaElementContentProvider.java
+++ b/org.eclipse.jdt.ui/ui/org/eclipse/jdt/ui/StandardJavaElementContentProvider.java
@@ -362,8 +362,9 @@
} else {
IJavaElement element= JavaCore.create(member, javaProject);
if (element instanceof IPackageFragmentRoot
- && javaProject.equals(element.getJavaProject())) {
- // don't skip PFRs on the classpath of their project
+ && javaProject.equals(element.getJavaProject())
+ && ((IPackageFragmentRoot)element).getKind() != IPackageFragmentRoot.K_SOURCE) {
+ // don't skip libs and class folders on the classpath of their project
nonJavaResources.add(member);
}
}