You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by db...@apache.org on 2022/05/20 06:48:06 UTC
[netbeans] branch master updated: Minor bug fixes. (#4131)
This is an automated email from the ASF dual-hosted git repository.
dbalek pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans.git
The following commit(s) were added to refs/heads/master by this push:
new d97a211d0d Minor bug fixes. (#4131)
d97a211d0d is described below
commit d97a211d0d44f4d13a5c0f1f8fad420a9f71cfae
Author: Dusan Balek <du...@oracle.com>
AuthorDate: Fri May 20 08:48:01 2022 +0200
Minor bug fixes. (#4131)
* Spock Unroll support should handle multiple tests with the same name correctly.
* Modified to fixed error thrown when typing an empty Javadoc comment for method with params.
---
.../lsp/server/progress/TestProgressHandler.java | 35 ++++----------------
java/java.lsp.server/vscode/src/testAdapter.ts | 38 ++++++++++++++--------
.../api/java/source/DocTreePathHandle.java | 11 ++++---
.../javadoc/hints/GenerateJavadocCollector.java | 7 +++-
4 files changed, 43 insertions(+), 48 deletions(-)
diff --git a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/progress/TestProgressHandler.java b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/progress/TestProgressHandler.java
index 84009e5d46..1330c0f366 100644
--- a/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/progress/TestProgressHandler.java
+++ b/java/java.lsp.server/src/org/netbeans/modules/java/lsp/server/progress/TestProgressHandler.java
@@ -98,13 +98,13 @@ public final class TestProgressHandler implements TestResultDisplayHandler.Spi<T
}
return fileLocator != null ? fileLocator.find(loc) : null;
}) : null;
- TestSuiteInfo.TestCaseInfo info = testCases.get(id);
- if (info != null) {
- updateState(info, state);
- } else {
- info = new TestSuiteInfo.TestCaseInfo(id, name, fo != null ? Utils.toUri(fo) : null, null, state, stackTrace);
- testCases.put(id, info);
+ int cnt = 1;
+ String base = id;
+ while (testCases.containsKey(id)) {
+ id = base + '-' + cnt++;
}
+ TestSuiteInfo.TestCaseInfo info = new TestSuiteInfo.TestCaseInfo(id, name, fo != null ? Utils.toUri(fo) : null, null, state, stackTrace);
+ testCases.put(id, info);
}
String state = statusToState(report.getStatus());
FileObject fo = fileLocations.size() == 1 ? fileLocations.values().iterator().next() : null;
@@ -144,27 +144,4 @@ public final class TestProgressHandler implements TestResultDisplayHandler.Spi<T
throw new IllegalStateException("Unexpected testsuite status: " + status);
}
}
-
- private void updateState(TestSuiteInfo.TestCaseInfo info, String state) {
- switch (state) {
- case TestSuiteInfo.State.Errored:
- info.setState(state);
- break;
- case TestSuiteInfo.State.Failed:
- if (!TestSuiteInfo.State.Errored.equals(info.getState())) {
- info.setState(state);
- }
- break;
- case TestSuiteInfo.State.Passed:
- if (TestSuiteInfo.State.Skipped.equals(info.getState()) || TestSuiteInfo.State.Started.equals(info.getState())) {
- info.setState(state);
- }
- break;
- case TestSuiteInfo.State.Skipped:
- if (TestSuiteInfo.State.Started.equals(info.getState())) {
- info.setState(state);
- }
- break;
- }
- }
}
diff --git a/java/java.lsp.server/vscode/src/testAdapter.ts b/java/java.lsp.server/vscode/src/testAdapter.ts
index 2b8c90f635..e1c3ac5e29 100644
--- a/java/java.lsp.server/vscode/src/testAdapter.ts
+++ b/java/java.lsp.server/vscode/src/testAdapter.ts
@@ -101,9 +101,7 @@ export class NbTestAdapter {
case 'failed':
case 'errored':
this.itemsToRun?.delete(item);
- if (message) {
- this.currentRun[state](item, message);
- }
+ this.currentRun[state](item, message || new TestMessage(""));
break;
}
if (!noPassDown) {
@@ -240,15 +238,14 @@ export class NbTestAdapter {
parents.set(item, subName);
}
});
- if (parents.size === 1) {
- parents.forEach((label, parentTest) => {
- let arr = parentTests.get(parentTest);
- if (!arr) {
- parentTests.set(parentTest, arr = []);
- children.push(parentTest);
- }
- arr.push(this.testController.createTestItem(test.id, label));
- });
+ const parent = this.selectParent(parents);
+ if (parent) {
+ let arr = parentTests.get(parent.test);
+ if (!arr) {
+ parentTests.set(parent.test, arr = []);
+ children.push(parent.test);
+ }
+ arr.push(this.testController.createTestItem(test.id, parent.label));
}
} else {
currentTest = this.testController.createTestItem(test.id, test.name, testUri);
@@ -280,10 +277,23 @@ export class NbTestAdapter {
} else {
const regexp = new RegExp(item.id.replace(/[-[\]{}()*+?.,\\^$|\s]/g, '\\$&').replace(/#\w*/g, '\\S*'));
if (regexp.test(test.id)) {
- let idx = test.id.indexOf(':');
- return idx < 0 ? test.id : test.id.slice(idx + 1);
+ return test.name;
}
}
return undefined;
}
+
+ selectParent(parents: Map<TestItem, string>): {test: TestItem, label: string} | undefined {
+ let ret: {test: TestItem, label: string} | undefined = undefined;
+ parents.forEach((label, parentTest) => {
+ if (ret) {
+ if (parentTest.id.replace(/#\w*/g, '').length > ret.test.id.replace(/#\w*/g, '').length) {
+ ret = {test: parentTest, label};
+ }
+ } else {
+ ret = {test: parentTest, label};
+ }
+ });
+ return ret;
+ }
}
diff --git a/java/java.source.base/src/org/netbeans/api/java/source/DocTreePathHandle.java b/java/java.source.base/src/org/netbeans/api/java/source/DocTreePathHandle.java
index a6a79eccbd..45798e2b62 100644
--- a/java/java.source.base/src/org/netbeans/api/java/source/DocTreePathHandle.java
+++ b/java/java.source.base/src/org/netbeans/api/java/source/DocTreePathHandle.java
@@ -175,7 +175,8 @@ public final class DocTreePathHandle {
assert index != (-1);
return new DocTreePathHandle(new CountingDelegate(treePathHandle, index, docTreePath.getLeaf().getKind()));
}
- Position pos = createPositionRef(treePathHandle.getFileObject(), position.getPreferredPosition(), Bias.Forward);
+ int preferredPosition = position.getPreferredPosition();
+ Position pos = preferredPosition >= 0 ? createPositionRef(treePathHandle.getFileObject(), preferredPosition, Bias.Forward) : null;
return new DocTreePathHandle(new DocTreeDelegate(pos, new DocTreeDelegate.KindPath(docTreePath), treePathHandle));
}
@@ -284,8 +285,8 @@ public final class DocTreePathHandle {
// no doc comment for the TreePath
return null;
}
- int pos = position.getOffset();
- tp = resolvePathForPos(javac, treePath, doc, pos + 1);
+ int pos = position != null ? position.getOffset() : -1;
+ tp = pos < 0 ? new DocTreePath(treePath, doc) : resolvePathForPos(javac, treePath, doc, pos + 1);
if (tp != null) {
return tp;
}
@@ -308,7 +309,9 @@ public final class DocTreePathHandle {
public boolean equalsHandle(Delegate obj) {
DocTreeDelegate other = (DocTreeDelegate) obj;
- if (this.position.getOffset() != this.position.getOffset()) {
+ int otherOffset = other.position != null ? other.position.getOffset() : -1;
+ int thisOffset = this.position != null ? this.position.getOffset() : -1;
+ if (thisOffset != otherOffset) {
return false;
}
return other.getTreePathHandle().equals(treePathHandle);
diff --git a/java/javadoc/src/org/netbeans/modules/javadoc/hints/GenerateJavadocCollector.java b/java/javadoc/src/org/netbeans/modules/javadoc/hints/GenerateJavadocCollector.java
index 88dee530e4..e660d0b308 100644
--- a/java/javadoc/src/org/netbeans/modules/javadoc/hints/GenerateJavadocCollector.java
+++ b/java/javadoc/src/org/netbeans/modules/javadoc/hints/GenerateJavadocCollector.java
@@ -21,6 +21,7 @@ package org.netbeans.modules.javadoc.hints;
import com.sun.source.tree.Tree;
import com.sun.source.util.TreePath;
import java.io.IOException;
+import java.util.concurrent.atomic.AtomicReference;
import java.util.function.Consumer;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.Element;
@@ -53,7 +54,11 @@ public class GenerateJavadocCollector implements CompletionCollector {
@Override
public boolean collectCompletions(Document doc, int offset, Completion.Context context, Consumer<Completion> consumer) {
if (context != null && context.getTriggerKind() == Completion.TriggerKind.TriggerCharacter && context.getTriggerCharacter() == '*') {
- TokenSequence<JavaTokenId> ts = SourceUtils.getJavaTokenSequence(TokenHierarchy.get(doc), offset);
+ AtomicReference<TokenSequence<JavaTokenId>> ref = new AtomicReference<>();
+ doc.render(() -> {
+ ref.set(SourceUtils.getJavaTokenSequence(TokenHierarchy.get(doc), offset));
+ });
+ TokenSequence<JavaTokenId> ts = ref.get();
if (ts != null) {
ts.move(offset);
if (ts.moveNext() && ts.token().id() == JavaTokenId.JAVADOC_COMMENT) {
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists