This is an automated email from the ASF dual-hosted git repository.

lkishalmi pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git

commit 6bf689fa98c6da795fbfd6fda20ef92a971c6822
Author: Laszlo Kishalmi <[email protected]>
AuthorDate: Mon Aug 15 20:59:30 2022 -0700

    Prevent GradleReport instance creation from the API consumers
---
 .../gradle/src/org/netbeans/modules/gradle/GradleProject.java  | 10 +++++++++-
 .../src/org/netbeans/modules/gradle/NbGradleProjectImpl.java   |  3 +++
 .../src/org/netbeans/modules/gradle/api/GradleReport.java      | 10 +---------
 .../src/org/netbeans/modules/gradle/api/NbGradleProject.java   |  5 +++++
 .../netbeans/modules/gradle/loaders/AbstractProjectLoader.java |  2 +-
 .../netbeans/modules/gradle/loaders/FallbackProjectLoader.java |  2 +-
 .../netbeans/modules/gradle/loaders/LegacyProjectLoader.java   |  8 ++++----
 7 files changed, 24 insertions(+), 16 deletions(-)

diff --git a/extide/gradle/src/org/netbeans/modules/gradle/GradleProject.java 
b/extide/gradle/src/org/netbeans/modules/gradle/GradleProject.java
index 2759fd68b2..33caf0f207 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/GradleProject.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/GradleProject.java
@@ -26,6 +26,7 @@ import java.util.Collection;
 import java.util.Collections;
 import java.util.LinkedHashSet;
 import java.util.List;
+import java.util.Objects;
 import java.util.Set;
 import org.netbeans.api.annotations.common.NonNull;
 import org.netbeans.modules.gradle.api.GradleBaseProject;
@@ -125,9 +126,16 @@ public final class GradleProject implements Serializable, 
Lookup.Provider {
         Path scriptPath = gf.getBuildScript() != null ? 
gf.getBuildScript().toPath() : null;
         List<GradleReport> reports = new ArrayList<>();
         for (String s : reason) {
-            reports.add(GradleReport.simple(scriptPath, s));
+            reports.add(createGradleReport(scriptPath, s));
         }
         return invalidate(reports.toArray(new GradleReport[reports.size()]));
     }
 
+    public static GradleReport createGradleReport(String errorClass, String 
location, int line, String message, GradleReport causedBy) {
+        return NbGradleProjectImpl.ACCESSOR.createReport(errorClass, location, 
line, message, causedBy);
+    }
+
+    public static GradleReport createGradleReport(Path script, String message) 
{
+        return createGradleReport(null, Objects.toString(script), -1, message, 
null);
+    }
 }
diff --git 
a/extide/gradle/src/org/netbeans/modules/gradle/NbGradleProjectImpl.java 
b/extide/gradle/src/org/netbeans/modules/gradle/NbGradleProjectImpl.java
index 5d56af3f59..1d58007254 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/NbGradleProjectImpl.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/NbGradleProjectImpl.java
@@ -64,6 +64,7 @@ import org.netbeans.api.annotations.common.NonNull;
 import org.netbeans.api.annotations.common.SuppressWarnings;
 import org.netbeans.api.project.ui.ProjectProblems;
 import org.netbeans.modules.gradle.api.GradleBaseProject;
+import org.netbeans.modules.gradle.api.GradleReport;
 import org.netbeans.modules.gradle.options.GradleExperimentalSettings;
 import org.netbeans.spi.project.CacheDirectoryProvider;
 import org.netbeans.spi.project.support.LookupProviderSupport;
@@ -132,6 +133,8 @@ public final class NbGradleProjectImpl implements Project {
         public abstract void activate(NbGradleProject watcher);
 
         public abstract void passivate(NbGradleProject watcher);
+
+        public abstract GradleReport createReport(String errorClass, String 
location, int line, String message, GradleReport causedBy);
     }
 
     @java.lang.SuppressWarnings("LeakingThisInConstructor")
diff --git 
a/extide/gradle/src/org/netbeans/modules/gradle/api/GradleReport.java 
b/extide/gradle/src/org/netbeans/modules/gradle/api/GradleReport.java
index be37f9f442..ff193824d7 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/api/GradleReport.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/api/GradleReport.java
@@ -42,7 +42,7 @@ public final class GradleReport {
     private final String message;
     private final GradleReport causedBy;
 
-    public GradleReport(String errorClass, String location, int line, String 
message, GradleReport causedBy) {
+    GradleReport(String errorClass, String location, int line, String message, 
GradleReport causedBy) {
         this.errorClass = errorClass;
         this.location = location;
         this.line = line;
@@ -50,14 +50,6 @@ public final class GradleReport {
         this.causedBy = causedBy;
     }
     
-    public static GradleReport simple(Path script, String message) {
-        return new GradleReport(null, Objects.toString(script), -1, message, 
null);
-    }
-
-    public GradleReport(Path scriptLocation, String message, GradleReport 
causedBy) {
-        this(null, scriptLocation.toString(), -1, message, causedBy);
-    }
-
     public @CheckForNull String getLocation() {
         return location;
     }
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 ba3ace1b43..76a3bbbfaf 100644
--- a/extide/gradle/src/org/netbeans/modules/gradle/api/NbGradleProject.java
+++ b/extide/gradle/src/org/netbeans/modules/gradle/api/NbGradleProject.java
@@ -176,6 +176,11 @@ public final class NbGradleProject {
         public void passivate(NbGradleProject watcher) {
             watcher.detachResourceWatchers();
         }
+
+        @Override
+        public GradleReport createReport(String errorClass, String location, 
int line, String message, GradleReport causedBy) {
+            return new GradleReport(errorClass, location, line, message, 
causedBy);
+        }
     }
 
     private NbGradleProject(NbGradleProjectImpl project) {
diff --git 
a/extide/gradle/src/org/netbeans/modules/gradle/loaders/AbstractProjectLoader.java
 
b/extide/gradle/src/org/netbeans/modules/gradle/loaders/AbstractProjectLoader.java
index dc51690c63..61176f0f8c 100644
--- 
a/extide/gradle/src/org/netbeans/modules/gradle/loaders/AbstractProjectLoader.java
+++ 
b/extide/gradle/src/org/netbeans/modules/gradle/loaders/AbstractProjectLoader.java
@@ -118,7 +118,7 @@ public abstract class AbstractProjectLoader {
             }
         }
         for (String s : problems) {
-            reps.add(GradleReport.simple(gf.getBuildScript().toPath(), s));
+            
reps.add(GradleProject.createGradleReport(gf.getBuildScript().toPath(), s));
         }
         return new GradleProject(info.getQuality(), reps, results.values());
 
diff --git 
a/extide/gradle/src/org/netbeans/modules/gradle/loaders/FallbackProjectLoader.java
 
b/extide/gradle/src/org/netbeans/modules/gradle/loaders/FallbackProjectLoader.java
index 2b9b7f4f59..21f1d0a053 100644
--- 
a/extide/gradle/src/org/netbeans/modules/gradle/loaders/FallbackProjectLoader.java
+++ 
b/extide/gradle/src/org/netbeans/modules/gradle/loaders/FallbackProjectLoader.java
@@ -58,7 +58,7 @@ public class FallbackProjectLoader extends 
AbstractProjectLoader {
         for (ProjectInfoExtractor extractor : extractors) {
             ProjectInfoExtractor.Result result = extractor.fallback(files);
             for (String s : result.getProblems()) {
-                
problems.add(GradleReport.simple(files.getBuildScript().toPath(), s));
+                
problems.add(GradleProject.createGradleReport(files.getBuildScript().toPath(), 
s));
             }
             for (Object extract : result.getExtract()) {
                 infos.put(extract.getClass(), extract);
diff --git 
a/extide/gradle/src/org/netbeans/modules/gradle/loaders/LegacyProjectLoader.java
 
b/extide/gradle/src/org/netbeans/modules/gradle/loaders/LegacyProjectLoader.java
index 165b2bb8c8..670939b0b8 100644
--- 
a/extide/gradle/src/org/netbeans/modules/gradle/loaders/LegacyProjectLoader.java
+++ 
b/extide/gradle/src/org/netbeans/modules/gradle/loaders/LegacyProjectLoader.java
@@ -233,7 +233,7 @@ public class LegacyProjectLoader extends 
AbstractProjectLoader {
                     LOG.log(FINE, "Thrown exception:", 
info.getGradleException()); //NOI18N
                     File f = ctx.project.getGradleFiles().getBuildScript();
                     for (String s : info.getProblems()) {
-                        reps.add(GradleReport.simple(f == null ? null : 
f.toPath(), s));
+                        reps.add(GradleProject.createGradleReport(f == null ? 
null : f.toPath(), s));
                     }
                     return 
ctx.previous.invalidate(info.getProblems().toArray(new GradleReport[0]));
                 }
@@ -275,7 +275,7 @@ public class LegacyProjectLoader extends 
AbstractProjectLoader {
             }
         }
         
-        return new GradleReport(orig.getErrorClass(), loc, 
orig.getLineNumber(), orig.getMessage(), 
+        return GradleProject.createGradleReport(orig.getErrorClass(), loc, 
orig.getLineNumber(), orig.getMessage(),
                 orig.getCause() == null ? null : copyReport(orig.getCause()));
     }
     
@@ -283,7 +283,7 @@ public class LegacyProjectLoader extends 
AbstractProjectLoader {
         List<GradleReport> problems = new ArrayList<>();
         Throwable th = ex;
         while (th != null) {
-            problems.add(GradleReport.simple(null, th.getMessage()));
+            problems.add(GradleProject.createGradleReport(null, 
th.getMessage()));
         }
         return problems;
     }
@@ -385,7 +385,7 @@ public class LegacyProjectLoader extends 
AbstractProjectLoader {
         if (reported.getCause() != null && reported.getCause() != reported) {
             nested = createReport(reported.getCause());
         }
-        return new GradleReport(reported.getClass().getName(), loc, line, 
reported.getMessage(), nested);
+        return GradleProject.createGradleReport(reported.getClass().getName(), 
loc, line, reported.getMessage(), nested);
     }
 
     private static BuildActionExecuter<NbProjectInfo> 
createInfoAction(ProjectConnection pconn, GradleCommandLine cmd, 
CancellationToken token, ProgressListener pl) {


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists

Reply via email to