Skip to content

Commit d943154

Browse files
committed
Fix launch.json behavior and hanging issue with multiple main classes
1 parent 2ad0061 commit d943154

File tree

1 file changed

+47
-0
lines changed

1 file changed

+47
-0
lines changed

patches/8828.diff

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
diff --git a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/debugging/launch/NbLaunchDelegate.java b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/debugging/launch/NbLaunchDelegate.java
2+
index a8ca4f2143de..e503da42bd4b 100644
3+
--- a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/debugging/launch/NbLaunchDelegate.java
4+
+++ b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/debugging/launch/NbLaunchDelegate.java
5+
@@ -571,7 +571,7 @@ public void finished(boolean success) {
6+
mainSource = false;
7+
} else {
8+
FileObject fileRoot = sourceCP != null ? sourceCP.findOwnerRoot(toRun) : null;
9+
- mainSource = fileRoot != null && UnitTestForSourceQuery.findUnitTests(fileRoot).length > 0;
10+
+ mainSource = fileRoot == null || UnitTestForSourceQuery.findSources(fileRoot).length == 0;
11+
}
12+
ActionProvider provider = null;
13+
String command = null;
14+
diff --git a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/debugging/launch/NbLaunchRequestHandler.java b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/debugging/launch/NbLaunchRequestHandler.java
15+
index b1a472ce99a4..5e6242c6e89d 100644
16+
--- a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/debugging/launch/NbLaunchRequestHandler.java
17+
+++ b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/debugging/launch/NbLaunchRequestHandler.java
18+
@@ -32,6 +32,8 @@
19+
import java.util.concurrent.CompletableFuture;
20+
import java.util.concurrent.atomic.AtomicReference;
21+
import java.util.function.Consumer;
22+
+import java.util.logging.Level;
23+
+import java.util.logging.Logger;
24+
import java.util.regex.Matcher;
25+
import java.util.regex.Pattern;
26+
import java.util.stream.Collectors;
27+
@@ -70,7 +72,7 @@
28+
* @author martin
29+
*/
30+
public final class NbLaunchRequestHandler {
31+
-
32+
+ private static final Logger LOG = Logger.getLogger(NbLaunchRequestHandler.class.getName());
33+
private NbLaunchDelegate activeLaunchHandler;
34+
35+
public CompletableFuture<Void> launch(Map<String, Object> launchArguments, DebugAdapterContext context) {
36+
@@ -148,7 +150,10 @@ public CompletableFuture<Void> launch(Map<String, Object> launchArguments, Debug
37+
case 1:
38+
handleSelectedMainClass.accept(mainClasses.get(0));
39+
break;
40+
- case 2:
41+
+ default:
42+
+ if(mainClasses.size() > 10){
43+
+ LOG.log(Level.WARNING, "The number of main classes is large :{0}", mainClasses.size());
44+
+ }
45+
List<NotifyDescriptor.QuickPick.Item> mainClassItems =
46+
mainClasses.stream()
47+
.map(eh -> new Item(eh.getQualifiedName(), eh.getQualifiedName()))

0 commit comments

Comments
 (0)