Skip to content

Commit

Permalink
Merge pull request #160 from Achal1607/add-patches
Browse files Browse the repository at this point in the history
Add Netbeans patches to fix relevant issues
  • Loading branch information
Achal1607 committed May 21, 2024
2 parents 53b9460 + 6e83da7 commit b491900
Show file tree
Hide file tree
Showing 3 changed files with 152 additions and 1 deletion.
2 changes: 1 addition & 1 deletion build.xml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@
<property name="nbplatform.default.harness.dir" location="${nbplatform.default.netbeans.dest.dir}/harness" />
<property name="nbantext.jar" location="netbeans/nbbuild/build/nbantext.jar" />
<property name="nb_all" location="netbeans" />
<property name="patches" value="patches/6330.diff patches/6760.diff patches/6834.diff patches/7001.diff patches/6968.diff patches/7104.diff patches/7158.diff patches/mvn-sh.diff patches/rename-debugger.diff patches/generate-dependencies.diff patches/remove-db.diff" />
<property name="patches" value="patches/6330.diff patches/6760.diff patches/6834.diff patches/7001.diff patches/6968.diff patches/7104.diff patches/7158.diff patches/7353.diff patches/7370.diff patches/mvn-sh.diff patches/rename-debugger.diff patches/generate-dependencies.diff patches/remove-db.diff" />
<condition property="cmd.suffix" value=".cmd" else="">
<os family="windows"/>
</condition>
Expand Down
16 changes: 16 additions & 0 deletions patches/7353.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
diff --git a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/protocol/TextDocumentServiceImpl.java b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/protocol/TextDocumentServiceImpl.java
index b33ff46f4643..5e5d10079dae 100644
--- a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/protocol/TextDocumentServiceImpl.java
+++ b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/protocol/TextDocumentServiceImpl.java
@@ -1022,6 +1022,11 @@ public CompletableFuture<List<Either<Command, CodeAction>>> codeAction(CodeActio
if (err.getEndPosition().getOffset() < lineStartOffset || err.getStartPosition().getOffset() > lineEndOffset) {
continue;
}
+ int lineStart = NbDocument.findLineNumber(doc, startOffset);
+ int errStartLine = NbDocument.findLineNumber(doc, err.getStartPosition().getOffset());
+ if(errStartLine != lineStart){
+ continue;
+ }
}
Optional<Diagnostic> diag = diagnostics.stream().filter(d -> entry.getKey().equals(d.getCode().getLeft())).findFirst();
org.netbeans.api.lsp.Diagnostic.LazyCodeActions actions = err.getActions();
135 changes: 135 additions & 0 deletions patches/7370.diff
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
diff --git a/java/java.hints/src/org/netbeans/modules/java/hints/infrastructure/JavaErrorProvider.java b/java/java.hints/src/org/netbeans/modules/java/hints/infrastructure/JavaErrorProvider.java
index c8725dce9fdb..dbccee227fb5 100644
--- a/java/java.hints/src/org/netbeans/modules/java/hints/infrastructure/JavaErrorProvider.java
+++ b/java/java.hints/src/org/netbeans/modules/java/hints/infrastructure/JavaErrorProvider.java
@@ -206,7 +206,7 @@ private static List<CodeAction> convertFixes(ErrorDescription err, Consumer<Exce
for (Fix f : fixes) {
if (f instanceof IncompleteClassPath.ResolveFix) {
// We know that this is a project problem and that the problems reported by ProjectProblemsProvider should be resolved
- CodeAction action = new CodeAction(f.getText(), new Command(f.getText(), "nbls.java.project.resolveProjectProblems"));
+ CodeAction action = new CodeAction(f.getText(), new Command(f.getText(), "nbls.project.resolveProjectProblems"));
result.add(action);
}
if (f instanceof org.netbeans.modules.java.hints.errors.EnablePreview.ResolveFix) {
diff --git a/java/maven/src/org/netbeans/modules/maven/problems/MavenModelProblemsProvider.java b/java/maven/src/org/netbeans/modules/maven/problems/MavenModelProblemsProvider.java
index 333d7a9cdf15..8b6da8d7d23b 100644
--- a/java/maven/src/org/netbeans/modules/maven/problems/MavenModelProblemsProvider.java
+++ b/java/maven/src/org/netbeans/modules/maven/problems/MavenModelProblemsProvider.java
@@ -74,6 +74,7 @@
import org.openide.util.RequestProcessor;
import org.openide.util.lookup.Lookups;
import org.netbeans.modules.maven.InternalActionDelegate;
+import org.netbeans.modules.maven.problems.SanityBuildAction.SanityBuildNeededChecker;
import org.openide.util.Pair;

/**
@@ -85,9 +86,10 @@
@ProjectServiceProvider(service = {
ProjectProblemsProvider.class,
InternalActionDelegate.class,
+ SanityBuildNeededChecker.class,
}, projectType = "org-netbeans-modules-maven"
)
-public class MavenModelProblemsProvider implements ProjectProblemsProvider, InternalActionDelegate {
+public class MavenModelProblemsProvider implements ProjectProblemsProvider, InternalActionDelegate, SanityBuildNeededChecker {
static final RequestProcessor RP = new RequestProcessor(MavenModelProblemsProvider.class);
private static final Logger LOG = Logger.getLogger(MavenModelProblemsProvider.class.getName());

diff --git a/java/maven/src/org/netbeans/modules/maven/problems/SanityBuildAction.java b/java/maven/src/org/netbeans/modules/maven/problems/SanityBuildAction.java
index a944f782ab65..d964f5f4a218 100644
--- a/java/maven/src/org/netbeans/modules/maven/problems/SanityBuildAction.java
+++ b/java/maven/src/org/netbeans/modules/maven/problems/SanityBuildAction.java
@@ -23,6 +23,7 @@
import java.util.concurrent.CompletableFuture;
import java.util.concurrent.ExecutionException;
import java.util.concurrent.Future;
+import java.util.concurrent.atomic.AtomicInteger;
import java.util.function.Supplier;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -31,14 +32,17 @@
import org.netbeans.modules.maven.NbMavenProjectImpl;
import org.netbeans.modules.maven.TestChecker;
import org.netbeans.modules.maven.api.NbMavenProject;
+import org.netbeans.modules.maven.api.execute.ExecutionContext;
+import org.netbeans.modules.maven.api.execute.ExecutionResultChecker;
+import org.netbeans.modules.maven.api.execute.RunConfig;
import org.netbeans.modules.maven.api.execute.RunConfig.ReactorStyle;
import org.netbeans.modules.maven.api.execute.RunUtils;
import org.netbeans.modules.maven.execute.BeanRunConfig;
import org.netbeans.modules.maven.execute.MavenProxySupport;
import org.netbeans.modules.maven.execute.MavenProxySupport.ProxyResult;
-import org.netbeans.modules.maven.modelcache.MavenProjectCache;
import org.netbeans.modules.maven.options.MavenSettings;
import static org.netbeans.modules.maven.problems.Bundle.*;
+import org.netbeans.spi.project.ProjectServiceProvider;
import org.netbeans.spi.project.ui.ProjectProblemResolver;
import org.netbeans.spi.project.ui.ProjectProblemsProvider;
import org.openide.execution.ExecutorTask;
@@ -54,7 +58,8 @@
* to believe that there really is a problem with their project, not NetBeans.
*/
@Messages({"ACT_validate=Priming Build",
- "ACT_PrimingComplete=Priming build was completed",
+ "ACT_PrimingComplete=Priming build was completed.",
+ "ACT_PrimingFailed=Priming build failed. Please check project build output and resolve problems manually.",
"ACT_start_validate=Priming build was started."})
public class SanityBuildAction implements ProjectProblemResolver {
private static final Logger LOG = Logger.getLogger(SanityBuildAction.class.getName());
@@ -116,6 +121,7 @@ public void run() {
}
try {
LOG.log(Level.FINE, "Configuring sanity build");
+ AtomicInteger result = new AtomicInteger();
BeanRunConfig config = new BeanRunConfig();
if (context != null) {
config.setActionContext(context);
@@ -138,6 +144,7 @@ public void run() {
String label = build_label(nbproject.getProjectDirectory().getNameExt());
config.setExecutionName(label);
config.setTaskDisplayName(label);
+ config.setInternalProperty(SanityBuildAction.class.getName(), result);

MavenProxySupport mps = nbproject.getLookup().lookup(MavenProxySupport.class);
if (mps != null) {
@@ -164,7 +171,15 @@ public void run() {
ExecutorTask et = RunUtils.run(config);
if (et != null) {
et.waitFinished();
- ProjectProblemsProvider.Result r = ProjectProblemsProvider.Result.create(ProjectProblemsProvider.Status.RESOLVED, ACT_start_validate());
+ ProjectProblemsProvider.Result r;
+ if (result.get() == 0 ||
+ // if the build failed, the problem may be in user's sources, rather than in
+ // missing artifacts. Check if sanity build is still needed:
+ !nbproject.getLookup().lookup(SanityBuildNeededChecker.class).isSanityBuildNeeded()) {
+ r = ProjectProblemsProvider.Result.create(ProjectProblemsProvider.Status.RESOLVED, ACT_PrimingComplete());
+ } else {
+ r = ProjectProblemsProvider.Result.create(ProjectProblemsProvider.Status.UNRESOLVED, ACT_PrimingFailed());
+ }
LOG.log(Level.FINE, "Sanity build of {0} finished, took {1} ms.", new Object[] { nbproject, System.currentTimeMillis() - t});
publicResult.complete(r);
}
@@ -210,5 +225,22 @@ public boolean equals(Object obj) {
return true;
}

-
+
+ @ProjectServiceProvider(service=ExecutionResultChecker.class, projectType="org-netbeans-modules-maven")
+ public static class ResultChecker implements ExecutionResultChecker {
+
+ @Override
+ public void executionResult(RunConfig config, ExecutionContext res, int resultCode) {
+ Object resultObj = config.getInternalProperties().get(SanityBuildAction.class.getName());
+ if (!(resultObj instanceof AtomicInteger)) {
+ return ;
+ }
+ AtomicInteger result = (AtomicInteger) resultObj;
+ result.set(resultCode);
+ }
+ }
+
+ public interface SanityBuildNeededChecker {
+ public boolean isSanityBuildNeeded();
+ }
}

0 comments on commit b491900

Please sign in to comment.