diff --git a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaProject.java b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaProject.java
index 0818f30..8513866 100644
--- a/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaProject.java
+++ b/org.eclipse.jdt.core/model/org/eclipse/jdt/internal/core/JavaProject.java
@@ -639,7 +639,7 @@
 	public IPackageFragment findPackageFragment(IPath path)
 		throws JavaModelException {
 
-		return findPackageFragment0(this.canonicalizedPath(path));
+		return findPackageFragment0(JavaProject.canonicalizedPath(path));
 	}
 
 	/**
@@ -657,7 +657,7 @@
 	public IPackageFragmentRoot findPackageFragmentRoot(IPath path)
 		throws JavaModelException {
 
-		return findPackageFragmentRoot0(this.canonicalizedPath(path));
+		return findPackageFragmentRoot0(JavaProject.canonicalizedPath(path));
 	}
 
 	/**
@@ -1090,7 +1090,7 @@
 	 */
 	public IPackageFragmentRoot getPackageFragmentRoot(String jarPath) {
 
-		return getPackageFragmentRoot0(this.canonicalizedPath(new Path(jarPath)).toString());
+		return getPackageFragmentRoot0(JavaProject.canonicalizedPath(new Path(jarPath)).toString());
 	}
 	
 	/**
@@ -1386,6 +1386,16 @@
 									false,
 									false);
 						}
+						// if container is exported, then its nested entries must in turn be exported  (21749)
+						if (rawEntry.isExported()){
+							containerRawEntry = new ClasspathEntry(
+								containerRawEntry.getContentKind(),
+								containerRawEntry.getEntryKind(), 
+								containerRawEntry.getPath(),
+								containerRawEntry.getSourceAttachmentPath(),
+								containerRawEntry.getSourceAttachmentRootPath(),
+								true); // duplicate container entry for tagging it as exported
+						}
 						resolvedEntries.add(containerRawEntry);
 					}
 					break;
