Add GradleReports to the GradleBaseProject
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/GradleProject.java b/extide/gradle/src/org/netbeans/modules/gradle/GradleProject.java
index 33caf0f..04fda6a 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/GradleProject.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/GradleProject.java
@@ -23,7 +23,6 @@
 import java.nio.file.Path;
 import java.util.ArrayList;
 import java.util.Collection;
-import java.util.Collections;
 import java.util.LinkedHashSet;
 import java.util.List;
 import java.util.Objects;
@@ -43,7 +42,6 @@
  */
 public final class GradleProject implements Serializable, Lookup.Provider {
 
-    final Set<GradleReport> problems;
     final Quality quality;
     final long evaluationTime = System.currentTimeMillis();
     final Lookup lookup;
@@ -56,14 +54,15 @@
         for (GradleReport prob : problems) {
             if (prob != null) probs.add(prob);
         }
-        this.problems = probs;
         InstanceContent ic = new InstanceContent();
         for (Object i : infos) {
             ic.add(i);
         }
         lookup = new AbstractLookup(ic);
+
         baseProject = lookup.lookup(GradleBaseProject.class);
         assert baseProject != null : "GradleProject always shall have a GradleBaseProject in it's lookup!";
+        setProblems(baseProject, probs);
     }
 
     private GradleProject(Quality quality, GradleReport[] problems, GradleProject origin) {
@@ -72,10 +71,11 @@
         for (GradleReport prob : problems) {
             if (prob != null) probs.add(prob);
         }
-        this.problems = probs;
         lookup = origin.lookup;
         baseProject = lookup.lookup(GradleBaseProject.class);
         assert baseProject != null : "GradleProject always shall have a GradleBaseProject in it's lookup!";
+
+        setProblems(baseProject, probs);
     }
 
     @Override
@@ -83,8 +83,8 @@
         return lookup;
     }
 
-    public Set<GradleReport> getProblems() {
-        return Collections.unmodifiableSet(problems);
+    Set<GradleReport> getProblems() {
+        return baseProject.getProblems();
     }
 
     public Quality getQuality() {
@@ -131,6 +131,10 @@
         return invalidate(reports.toArray(new GradleReport[reports.size()]));
     }
 
+    private static void setProblems(GradleBaseProject baseProject, Set<GradleReport> problems) {
+        NbGradleProjectImpl.ACCESSOR.setProblems(baseProject, problems);
+    }
+
     public static GradleReport createGradleReport(String errorClass, String location, int line, String message, GradleReport causedBy) {
         return NbGradleProjectImpl.ACCESSOR.createReport(errorClass, location, line, message, causedBy);
     }
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/NbGradleProjectImpl.java b/extide/gradle/src/org/netbeans/modules/gradle/NbGradleProjectImpl.java
index 1d58007..0633e2b 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/NbGradleProjectImpl.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/NbGradleProjectImpl.java
@@ -135,6 +135,8 @@
         public abstract void passivate(NbGradleProject watcher);
 
         public abstract GradleReport createReport(String errorClass, String location, int line, String message, GradleReport causedBy);
+
+        public abstract void setProblems(GradleBaseProject baseProject, Set<GradleReport> problems);
     }
 
     @java.lang.SuppressWarnings("LeakingThisInConstructor")
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/api/GradleBaseProject.java b/extide/gradle/src/org/netbeans/modules/gradle/api/GradleBaseProject.java
index 2288f37..c7277f4 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/api/GradleBaseProject.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/api/GradleBaseProject.java
@@ -76,6 +76,7 @@
     Set<File> outputPaths = Collections.emptySet();
     Map<String, String> projectIds = Collections.emptyMap();
     GradleDependency projectDependencyNode;
+    Set<GradleReport> problems = Collections.emptySet();
 
     transient Boolean resolved = null;
 
@@ -170,6 +171,10 @@
         return includedBuilds;
     }
 
+    public Set<GradleReport> getProblems() {
+        return problems;
+    }
+    
     /**
      * Returns true if the project directory is the same as the root project's
      * project directory, in short if this project is a root project.
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/api/NbGradleProject.java b/extide/gradle/src/org/netbeans/modules/gradle/api/NbGradleProject.java
index 76a3bbb..fc592b5 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/api/NbGradleProject.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/api/NbGradleProject.java
@@ -26,6 +26,7 @@
 import java.beans.PropertyChangeSupport;
 import java.io.File;
 import java.util.Collection;
+import java.util.Collections;
 import java.util.HashSet;
 import java.util.Set;
 import java.util.concurrent.CompletableFuture;
@@ -181,6 +182,13 @@
         public GradleReport createReport(String errorClass, String location, int line, String message, GradleReport causedBy) {
             return new GradleReport(errorClass, location, line, message, causedBy);
         }
+
+        @Override
+        public void setProblems(GradleBaseProject baseProject, Set<GradleReport> problems) {
+            baseProject.problems = (problems == null || problems.isEmpty())
+                    ? Collections.emptySet()
+                    : Collections.unmodifiableSet(problems);
+        }
     }
 
     private NbGradleProject(NbGradleProjectImpl project) {
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/editor/GradleHintsProvider.java b/extide/gradle/src/org/netbeans/modules/gradle/editor/GradleHintsProvider.java
index 2caaad03..e275c81 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/editor/GradleHintsProvider.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/editor/GradleHintsProvider.java
@@ -32,8 +32,7 @@
 import javax.swing.text.Document;
 import org.netbeans.api.editor.document.LineDocument;
 import org.netbeans.api.project.Project;
-import org.netbeans.modules.gradle.GradleProject;
-import org.netbeans.modules.gradle.NbGradleProjectImpl;
+import org.netbeans.modules.gradle.api.GradleBaseProject;
 import org.netbeans.modules.gradle.api.GradleReport;
 import org.netbeans.modules.gradle.api.NbGradleProject;
 import org.netbeans.spi.editor.hints.ErrorDescription;
@@ -78,18 +77,15 @@
     }
     
     Map<LineDocument, List<GradleReport>> openReportDocuments(boolean reportNonLocations) {
-        NbGradleProjectImpl gpi = gradleProject.getLookup().lookup(NbGradleProjectImpl.class);
-        if (gpi == null) {
+        GradleBaseProject gbp = GradleBaseProject.get(gradleProject);
+        if (gbp == null) {
             return null;
         }
-        GradleProject gp = gpi.getGradleProject();
-        if (gp == null) {
-            return null;
-        }
-        Set<GradleReport> reports = gp.getProblems();
+        Set<GradleReport> reports = gbp.getProblems();
         Map<String, LineDocument> openedDocs = new HashMap<>();
         Map<LineDocument, List<GradleReport>> documentReports = new HashMap<>();
-        File scriptF = gpi.getGradleFiles().getBuildScript();
+        NbGradleProject gp = NbGradleProject.get(gradleProject);
+        File scriptF = gp.getGradleFiles().getBuildScript();
         for (GradleReport r : reports) {
             String l;
             int line;
diff --git a/extide/gradle/src/org/netbeans/modules/gradle/problems/ProxyAlertProvider.java b/extide/gradle/src/org/netbeans/modules/gradle/problems/ProxyAlertProvider.java
index 406a80a..63aceaa 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/problems/ProxyAlertProvider.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/problems/ProxyAlertProvider.java
@@ -41,7 +41,7 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 import org.netbeans.api.project.Project;
-import org.netbeans.modules.gradle.NbGradleProjectImpl;
+import org.netbeans.modules.gradle.api.GradleBaseProject;
 import org.netbeans.modules.gradle.api.GradleReport;
 import org.netbeans.modules.gradle.api.NbGradleProject;
 import org.netbeans.modules.gradle.spi.GradleFiles;
@@ -133,8 +133,8 @@
     }
     
     private Set<GradleReport> reports() {
-        NbGradleProjectImpl gp = (NbGradleProjectImpl)owner;
-        return gp.getGradleProject().getProblems();
+        GradleBaseProject gbp = GradleBaseProject.get(owner);
+        return gbp.getProblems();
     }
     
     private static final String CLASS_UNKNOWN_HOST = "java.net.UnknownHostException"; // NOI18N