Fix failure in ModuleBuilderTests.testBug522671b due to conflict
requirements between JPMS package lookup & team-packages
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/CompilationUnitScope.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/CompilationUnitScope.java
index 6cda4e9..77162c0 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/CompilationUnitScope.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/CompilationUnitScope.java
@@ -835,11 +835,17 @@
 		while (i < length) {
 //{ObjectTeams: For a team with team package we need to give precedence to the type:
 			if (i == length -1 && module.canAccess(packageBinding)) {
-				ReferenceBinding type = packageBinding.getType(compoundName[i], module);
-				if (type != null && type.isValidBinding() && type.isTeam()) {
-					if (!type.canBeSeenBy(this.fPackage))
-						return new ProblemReferenceBinding(compoundName, type, ProblemReasons.NotVisible);
-					return type;
+				boolean save = packageBinding.dontRememberNotFoundType;
+				packageBinding.dontRememberNotFoundType = true;
+				try {
+					ReferenceBinding type = packageBinding.getType(compoundName[i], module);
+					if (type != null && type.isValidBinding() && type.isTeam()) {
+						if (!type.canBeSeenBy(this.fPackage))
+							return new ProblemReferenceBinding(compoundName, type, ProblemReasons.NotVisible);
+						return type;
+					}
+				} finally {
+					packageBinding.dontRememberNotFoundType = save;
 				}
 			}
 // SH}
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/PackageBinding.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/PackageBinding.java
index 20dfd87..971a6d8 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/PackageBinding.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/PackageBinding.java
@@ -54,6 +54,10 @@
 	/** Is this package exported from its module? NB: to query this property use {@link #isExported()} to ensure initialization. */
 	Boolean isExported;
 
+//{ObjectTeams: during a non-JLS lookup we may get a not-found-type but that should not be remembered!
+	boolean dontRememberNotFoundType;
+// SH}
+
 protected PackageBinding(char[][] compoundName, LookupEnvironment environment) {
 	// for creating problem package
 	this.compoundName = compoundName;
@@ -87,6 +91,7 @@
 }
 //{ObjectTeams: ROFI changed visibility, was private
 void addNotFoundType(char[] simpleName) {
+	if (this.dontRememberNotFoundType) return;
 // SH}
 	if (this.environment.suppressImportErrors)
 		return;
diff --git a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/SplitPackageBinding.java b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/SplitPackageBinding.java
index ee04403..f359645 100644
--- a/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/SplitPackageBinding.java
+++ b/org.eclipse.jdt.core/compiler/org/eclipse/jdt/internal/compiler/lookup/SplitPackageBinding.java
@@ -235,6 +235,11 @@
 		ReferenceBinding candidate = null;
 		boolean accessible = false;
 		for (PackageBinding incarnation : this.incarnations) {
+//{ObjectTeams:
+		  boolean save = incarnation.dontRememberNotFoundType;
+		  incarnation.dontRememberNotFoundType = this.dontRememberNotFoundType;
+		  try {
+// orig:
 			ReferenceBinding type = incarnation.getType(name, mod);
 			if (type != null) {
 				if (candidate == null || !accessible) {
@@ -244,6 +249,11 @@
 					return new ProblemReferenceBinding(type.compoundName, candidate, ProblemReasons.Ambiguous); // TODO(SHMOD) add module information
 				}
 			}
+// :giro
+		  } finally {
+			  incarnation.dontRememberNotFoundType = save;
+		  }
+// SH}
 		}
 		if (candidate != null && !accessible)
 			return new ProblemReferenceBinding(candidate.compoundName, candidate, ProblemReasons.NotAccessible); // TODO(SHMOD) more info