Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Netbeans patches to fix relevant issues #160

Merged
merged 1 commit into from
May 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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();
+ }
}