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