Bug 538086 - [9] Java rejects java.* import but ECJ doesn't

Change-Id: I4a4def027ac5266a4e015fb866a20b557b6098bf
Signed-off-by: Jay Arthanareeswaran <jarthana@in.ibm.com>
diff --git a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ModuleBuilderTests.java b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ModuleBuilderTests.java
index 81d316f..77d997e 100644
--- a/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ModuleBuilderTests.java
+++ b/org.eclipse.jdt.core.tests.model/src/org/eclipse/jdt/core/tests/model/ModuleBuilderTests.java
@@ -4967,10 +4967,10 @@
 			getWorkingCopy("/Test/src/X.java", src, true);
 			assertProblems("should have not problems",
 					"----------\n" + 
-					"1. WARNING in /Test/src/X.java (at line 1)\n" + 
+					"1. ERROR in /Test/src/X.java (at line 1)\n" + 
 					"	import java.*;\n" + 
 					"	       ^^^^\n" + 
-					"The import java is never used\n" + 
+					"The package java is not accessible\n" + 
 					"----------\n",
 					this.problemRequestor);
 		} finally {
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ModuleBinding.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ModuleBinding.java
index 3b31a80..d972ad3 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ModuleBinding.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/ModuleBinding.java
@@ -73,9 +73,18 @@
 		}
 		@Override
 		public boolean canAccess(PackageBinding pkg) {
-			ModuleBinding mod = pkg.enclosingModule;
-			if (mod != null && mod != this)
-				return mod.isPackageExportedTo(pkg, this);
+			if (pkg instanceof SplitPackageBinding) {
+				for (PackageBinding p : ((SplitPackageBinding) pkg).incarnations) {
+					if (canAccess(p)) {
+						return true;
+					}
+				}
+				return false;
+			} else {
+				ModuleBinding mod = pkg.enclosingModule;
+				if (mod != null && mod != this)
+					return mod.isPackageExportedTo(pkg, this);
+			}
 			return true;
 		}
 		@Override