Skip to content

Conversation

@dessina-devasia
Copy link

Adds JakartaCodeActionCancellationTest under features/codeAction to emulate the language server cancelling a jakarta/java/codeAction request (eg: LSP error -32800).
This test confirms that LSP4IJ correctly handles cancellation without producing quick fixes or propagating exceptions.

image

@dessina-devasia dessina-devasia changed the title Added testcase to verify LSP4IJ handles cancelled jakarta/java/codeAction requests gracefully test: added testcase to verify LSP4IJ handles cancelled jakarta/java/codeAction requests gracefully Nov 6, 2025
@dessina-devasia dessina-devasia marked this pull request as draft November 6, 2025 15:23
@angelozerr
Copy link
Contributor

Please start your commit with test:

@angelozerr
Copy link
Contributor

I can merge your test if you wish but I am not sure that it reproduces the case with jakarta codeaction which misses, right?

@dessina-devasia
Copy link
Author

@angelozerr I'm still working into this PR. Will change the PR status and update you once it is ready for review. Thanks!

@dessina-devasia dessina-devasia changed the title test: added testcase to verify LSP4IJ handles cancelled jakarta/java/codeAction requests gracefully test: added test case for jakarta/java/codeAction cancellation Nov 7, 2025
}
]"""
,
false, // simulateCancellation = false
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As simulateCancellation is a specific case, please remove this change and define

 List<IntentionAction> assertCodeActions(@NotNull String fileName,
                                                      @NotNull IntentionActionKind kind,
                                                      @NotNull String editorContentText,
                                                      @NotNull List<CodeAction> codeActions,
                                                      @NotNull String... expectedActions)

which call the method with simulateCancellation=false

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've addressed the suggestion. Thank you @angelozerr

/**
* Test case for InvalidWebFilter quick fix
*/
public class CodeActionCancellationTest extends LSPCodeActionFixtureTestCase {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To show in action the cancel support easily, I suggest that you remove this classe and you do test in the same WebFilterQuickFixTest.

This class could define a private method like

assertCodeActionss(boolen simulateCancellation , @NotNull String... expectedActions) (which will call

assertCodeActions(TEST_FILE_NAME,
            IntentionActionKind.QUICK_FIX_ONLY,
            // language=JAVA
            """
            package io.openliberty.sample.jakarta.servlet;
...

and after that you could define 2 tests methods:

public void testWebFilterQuickFix() {
     assertCodeActions(false,  "Add the `servletNames` attribute to @WebFilter",
            "Add the `urlPatterns` attribute to @WebFilter",
            "Add the `value` attribute to @WebFilter");
}

public void testWebFilterQuickFixWithCancellation() {
   assertCodeActions(true);
}

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@angelozerr I’ve made the modification as suggested, with a small change — since expectedActions is included in the request, I had to add that argument for both tests. Thanks!

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please do my suggestion to fix tests

@angelozerr
Copy link
Contributor

@dessina-devasia I dont understand your last commit?

Hzve you understood my suggestion? You should remove your cancellation test class and write 2 tests in WebFilterQuickFixTest

@dessina-devasia
Copy link
Author

@angelozerr Regarding the last commit, I just formatted the code and removed the unnecessary comments I had added.

Regarding the suggestion, I understood it and have made the changes. I’m currently testing them and confirming that the results are as expected.

"Add the `servletNames` attribute to @WebFilter",
"Add the `urlPatterns` attribute to @WebFilter",
"Add the `value` attribute to @WebFilter");
private List<IntentionAction> assertCodeActions(boolean simulateCancellation) {
Copy link
Contributor

@angelozerr angelozerr Nov 7, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As I have suggested, please add @NotNull String... expectedActions as second parameter.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

CI build fail https://github.com/redhat-developer/lsp4ij/actions/runs/19169198726/job/54801075380?pr=1363#step:5:297 because you need to do my suggestion with expectedActions.

@TrevCraw
Copy link

TrevCraw commented Nov 7, 2025

Hi @angelozerr , I cannot speak to the details for this PR, but I just want to make sure we are all on the same page from a high level. The goal of this new test case is to reliably reproduce the intermittent quick fix missing bug (Issue in Liberty Tools repo: OpenLiberty/liberty-tools-intellij#748, Issue in LSP4IJ repo: #294). This is to follow up on your request here: #294 (comment).

As you are aware, Dessina worked with you to create a positive test case for the Jakarta quick fix scenario: #862. The idea here is to take the positive scenario and recreate the bug scenario with this new test. We would expect this new test to fail, resulting in CI build failures. This PR does not need to be merged right away. The intention is to provide a test that can reliably reproduce the bug and allow for moving forward on investigating the root cause of the bug.

@angelozerr
Copy link
Contributor

Hi @TrevCraw I understand your goal but the test fails because it expects a result although quickfix is cancelled so the test must be fixed.

This test is interesting but I fear that it doesnt cover your usecase.

@TrevCraw
Copy link

TrevCraw commented Nov 7, 2025

the test fails because it expects a result although quickfix is cancelled

@angelozerr , I think this is what I would expect. A cancellation request is causing the quick fixes to disappear. Maybe the bug is the fact that a cancellation request is being sent when it should not be? In that case, we would need to reproduce triggering the unwanted cancellation request instead of directly creating one in the test. Is that what you would suggest?

This test is interesting but I fear that it doesnt cover your usecase.

I agree that might be true. Could you explain how we can recreate our use case?

@angelozerr
Copy link
Contributor

angelozerr commented Nov 7, 2025

the test fails because it expects a result although quickfix is cancelled

@angelozerr , I think this is what I would expect. A cancellation request is causing the quick fixes to disappear.

Exactly and it is one reason why the test is failling. My suggestion was to do:

public void testWebFilterQuickFix() {
     assertCodeActions(false,  "Add the `servletNames` attribute to @WebFilter",
            "Add the `urlPatterns` attribute to @WebFilter",
            "Add the `value` attribute to @WebFilter");
}

public void testWebFilterQuickFixWithCancellation() {
   assertCodeActions(true);
}

Maybe the bug is the fact that a cancellation request is being sent when it should not be? In that case, we would need to reproduce triggering the unwanted cancellation request instead of directly creating one in the test. Is that what you would suggest?

This test is interesting but I fear that it doesnt cover your usecase.

I agree that might be true. Could you explain how we can recreate our use case?

I don't know since I don't understand how you can have this problem and since according @dessina-devasia it is working with MicroProfile LS? Without debugging your Jakarta LS it is hard to help you.

@TrevCraw
Copy link

TrevCraw commented Nov 7, 2025

according @dessina-devasia it is working with MicroProfile LS?

That is not my understanding. I believe this issue is reproducible with LSP4MP as well. Maybe @mrglavas, you could chime in here? I'm fairly certain we reproduced this problem with MicroProfile quick fixes as well.

@angelozerr
Copy link
Contributor

My questions are:

  • can you reproduce your issue with LSP4MP with LibertyTools?
  • if yes, can you reproduce your issue with LSP4MP with Quarkus Tools in IntelliJ?

@dessina-devasia
Copy link
Author

dessina-devasia commented Nov 10, 2025

@angelozerr Let me try to reproduce the issue with LSP4MP using Liberty Tools.

@dessina-devasia
Copy link
Author

dessina-devasia commented Nov 10, 2025

@angelozerr I'm able to reproduce this issue with LSP4MP using Liberty Tools.

Screenshot 2025-11-10 at 7 16 27 PM
[Trace - 19:19:40] Sending request 'textDocument/codeAction - (16)'.
Params: {
  "textDocument": {
    "uri": "file:///Users/dessina/Documents/Workspace/IntelliJ/liberty-tools-intellij/src/test/resources/projects/gradle/sampleGradleMPLSApp/src/main/java/io/openliberty/mp/sample/health/ServiceLiveHealthCheck.java"
  },
  "range": {
    "start": {
      "line": 10,
      "character": 27
    },
    "end": {
      "line": 10,
      "character": 27
    }
  },
  "context": {
    "diagnostics": [],
    "triggerKind": 2
  }
}


[Trace - 19:19:40] Received request 'microprofile/java/codeAction - (28)'
Params: {
  "resourceOperationSupported": true,
  "commandConfigurationUpdateSupported": false,
  "resolveSupported": true,
  "textDocument": {
    "uri": "file:///Users/dessina/Documents/Workspace/IntelliJ/liberty-tools-intellij/src/test/resources/projects/gradle/sampleGradleMPLSApp/src/main/java/io/openliberty/mp/sample/health/ServiceLiveHealthCheck.java"
  },
  "range": {
    "start": {
      "line": 10,
      "character": 27
    },
    "end": {
      "line": 10,
      "character": 27
    }
  },
  "context": {
    "diagnostics": [],
    "triggerKind": 2
  }
}


[Trace - 19:19:40] Sending response 'microprofile/java/codeAction - (28)'. Processing request took 0ms
Result: [
  {
    "title": "Generate OpenAPI Annotations for \u0027ServiceLiveHealthCheck\u0027",
    "kind": "source",
    "data": {
      "participantId": "io.openliberty.tools.intellij.lsp4mp4ij.psi.internal.openapi.java.MicroProfileGenerateOpenAPIOperation",
      "documentUri": "file:///Users/dessina/Documents/Workspace/IntelliJ/liberty-tools-intellij/src/test/resources/projects/gradle/sampleGradleMPLSApp/src/main/java/io/openliberty/mp/sample/health/ServiceLiveHealthCheck.java",
      "range": {
        "start": {
          "line": 10,
          "character": 27
        },
        "end": {
          "line": 10,
          "character": 27
        }
      },
      "extendedData": {
        "type": "io.openliberty.mp.sample.health.ServiceLiveHealthCheck"
      },
      "resourceOperationSupported": true,
      "commandConfigurationUpdateSupported": false,
      "id": "GenerateOpenApiAnnotations"
    }
  }
]


[Trace - 19:19:40] Received response 'textDocument/codeAction - (16)' in 1ms.
Result: [
  {
    "title": "Generate OpenAPI Annotations for \u0027ServiceLiveHealthCheck\u0027",
    "kind": "source",
    "data": {
      "participantId": "io.openliberty.tools.intellij.lsp4mp4ij.psi.internal.openapi.java.MicroProfileGenerateOpenAPIOperation",
      "documentUri": "file:///Users/dessina/Documents/Workspace/IntelliJ/liberty-tools-intellij/src/test/resources/projects/gradle/sampleGradleMPLSApp/src/main/java/io/openliberty/mp/sample/health/ServiceLiveHealthCheck.java",
      "range": {
        "start": {
          "line": 10,
          "character": 27
        },
        "end": {
          "line": 10,
          "character": 27
        }
      },
      "extendedData": {
        "type": "io.openliberty.mp.sample.health.ServiceLiveHealthCheck"
      },
      "resourceOperationSupported": true,
      "commandConfigurationUpdateSupported": false,
      "id": "GenerateOpenApiAnnotations"
    }
  }
]


[Trace - 19:53:32] Sending request 'textDocument/hover - (25)'.
Params: {
  "textDocument": {
    "uri": "file:///Users/dessina/Documents/Workspace/IntelliJ/liberty-tools-intellij/src/test/resources/projects/gradle/sampleGradleMPLSApp/src/main/java/io/openliberty/mp/sample/health/ServiceLiveHealthCheck.java"
  },
  "position": {
    "line": 10,
    "character": 24
  }
}


[Trace - 19:53:32] Received request 'microprofile/java/hover - (40)'
Params: {
  "uri": "file:///Users/dessina/Documents/Workspace/IntelliJ/liberty-tools-intellij/src/test/resources/projects/gradle/sampleGradleMPLSApp/src/main/java/io/openliberty/mp/sample/health/ServiceLiveHealthCheck.java",
  "position": {
    "line": 10,
    "character": 24
  },
  "documentFormat": 2,
  "surroundEqualsWithSpaces": false
}


[Trace - 19:53:32] Sending response 'microprofile/java/hover - (40)'. Processing request took 1ms
No response returned.


[Trace - 19:53:32] Received response 'textDocument/hover - (25)' in 1ms.
No response returned.

@dessina-devasia
Copy link
Author

@angelozerr Reproduced issue with LSP4Jakarta using Liberty Tools.

Screenshot 2025-11-10 at 8 13 53 PM
[Trace - 20:30:02] Sending request 'textDocument/codeAction - (13)'.
Params: {
  "textDocument": {
    "uri": "file:///Users/dessina/Documents/Workspace/IntelliJ/liberty-tools-intellij/src/test/resources/projects/gradle/sampleGradleMPLSApp/src/main/java/io/openliberty/mp/sample/system/SystemResource2.java"
  },
  "range": {
    "start": {
      "line": 16,
      "character": 26
    },
    "end": {
      "line": 16,
      "character": 26
    }
  },
  "context": {
    "diagnostics": [],
    "triggerKind": 2
  }
}


[Trace - 20:30:02] Received request 'microprofile/java/codeAction - (26)'
Params: {
  "resourceOperationSupported": true,
  "commandConfigurationUpdateSupported": false,
  "resolveSupported": true,
  "textDocument": {
    "uri": "file:///Users/dessina/Documents/Workspace/IntelliJ/liberty-tools-intellij/src/test/resources/projects/gradle/sampleGradleMPLSApp/src/main/java/io/openliberty/mp/sample/system/SystemResource2.java"
  },
  "range": {
    "start": {
      "line": 16,
      "character": 26
    },
    "end": {
      "line": 16,
      "character": 26
    }
  },
  "context": {
    "diagnostics": [],
    "triggerKind": 2
  }
}


[Trace - 20:30:02] Sending response 'microprofile/java/codeAction - (26)'. Processing request took 1ms
Result: [
  {
    "title": "Generate OpenAPI Annotations for \u0027SystemResource2\u0027",
    "kind": "source",
    "data": {
      "participantId": "io.openliberty.tools.intellij.lsp4mp4ij.psi.internal.openapi.java.MicroProfileGenerateOpenAPIOperation",
      "documentUri": "file:///Users/dessina/Documents/Workspace/IntelliJ/liberty-tools-intellij/src/test/resources/projects/gradle/sampleGradleMPLSApp/src/main/java/io/openliberty/mp/sample/system/SystemResource2.java",
      "range": {
        "start": {
          "line": 16,
          "character": 26
        },
        "end": {
          "line": 16,
          "character": 26
        }
      },
      "extendedData": {
        "type": "io.openliberty.mp.sample.system.SystemResource2"
      },
      "resourceOperationSupported": true,
      "commandConfigurationUpdateSupported": false,
      "id": "GenerateOpenApiAnnotations"
    }
  }
]


[Trace - 20:30:02] Received response 'textDocument/codeAction - (13)' in 2ms.
Result: [
  {
    "title": "Generate OpenAPI Annotations for \u0027SystemResource2\u0027",
    "kind": "source",
    "data": {
      "participantId": "io.openliberty.tools.intellij.lsp4mp4ij.psi.internal.openapi.java.MicroProfileGenerateOpenAPIOperation",
      "documentUri": "file:///Users/dessina/Documents/Workspace/IntelliJ/liberty-tools-intellij/src/test/resources/projects/gradle/sampleGradleMPLSApp/src/main/java/io/openliberty/mp/sample/system/SystemResource2.java",
      "range": {
        "start": {
          "line": 16,
          "character": 26
        },
        "end": {
          "line": 16,
          "character": 26
        }
      },
      "extendedData": {
        "type": "io.openliberty.mp.sample.system.SystemResource2"
      },
      "resourceOperationSupported": true,
      "commandConfigurationUpdateSupported": false,
      "id": "GenerateOpenApiAnnotations"
    }
  }
]


[Trace - 20:30:03] Sending request 'textDocument/hover - (14)'.
Params: {
  "textDocument": {
    "uri": "file:///Users/dessina/Documents/Workspace/IntelliJ/liberty-tools-intellij/src/test/resources/projects/gradle/sampleGradleMPLSApp/src/main/java/io/openliberty/mp/sample/system/SystemResource2.java"
  },
  "position": {
    "line": 16,
    "character": 28
  }
}


[Trace - 20:30:03] Received request 'microprofile/java/hover - (27)'
Params: {
  "uri": "file:///Users/dessina/Documents/Workspace/IntelliJ/liberty-tools-intellij/src/test/resources/projects/gradle/sampleGradleMPLSApp/src/main/java/io/openliberty/mp/sample/system/SystemResource2.java",
  "position": {
    "line": 16,
    "character": 28
  },
  "documentFormat": 2,
  "surroundEqualsWithSpaces": false
}


[Trace - 20:30:03] Sending response 'microprofile/java/hover - (27)'. Processing request took 0ms
No response returned.


[Trace - 20:30:03] Received response 'textDocument/hover - (14)' in 0ms.
No response returned.

@angelozerr
Copy link
Contributor

Could you please test with IJ Quarkus?

@angelozerr
Copy link
Contributor

Your sample returns codeaction as source kind it is not a quickfix. Please try with a quickfix.

@mrglavas
Copy link
Contributor

mrglavas commented Nov 10, 2025

That is not my understanding. I believe this issue is reproducible with LSP4MP as well. Maybe @mrglavas, you could chime in here? I'm fairly certain we reproduced this problem with MicroProfile quick fixes as well.

@TrevCraw We have reproduced this with Liberty Tools and LSP4MP before though not sure we collected full trace.

@angelozerr
Copy link
Contributor

angelozerr commented Nov 11, 2025

@dessina-devasia @TrevCraw to be honnest with you I am lost and I don't understand what it doesn't work with LSP4MP in Liberty Tools.

Take a commons sample:

image * If you click on the `Insert @Liveness` it should insert it: image

Is it working with your Liberty Tools? If no is it working with IJ Quarkus?

@dessina-devasia
Copy link
Author

dessina-devasia commented Nov 11, 2025

@angelozerr We’re encountering this issue intermittently - it doesn’t occur consistently.

@angelozerr
Copy link
Contributor

With the health usecase?

@dessina-devasia
Copy link
Author

@angelozerr @TrevCraw @mrglavas

Please find the LTI automation test failure due to intermittent quick fix missing case. Here I'm attaching the log.

LTI automation test failure log GradleSingleModJakartaLSTest > testJakartaQuickFixInJavaPart() STANDARD_ERROR log4j:WARN No appenders could be found for logger (com.automation.remarks.video.recorder.monte.MonteRecorder). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. java.lang.RuntimeException: Hover on text: 'getProperties' did not trigger a pop-up window to open at io.openliberty.tools.intellij.it.UIBotTestUtils.hoverForQuickFixInAppFile(UIBotTestUtils.java:883) at io.openliberty.tools.intellij.it.SingleModJakartaLSTestCommon.testJakartaQuickFixInJavaPart(SingleModJakartaLSTestCommon.java:176) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:727) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at com.intellij.testFramework.junit5.impl.TestLoggerInterceptor.intercept$lambda$0(TestLoggerInterceptor.kt:12) at com.intellij.testFramework.TestLoggerKt.recordErrorsLoggedInTheCurrentThreadAndReportThemAsFailures(testLogger.kt:72) at com.intellij.testFramework.junit5.impl.TestLoggerInterceptor.intercept(TestLoggerInterceptor.kt:11) at com.intellij.testFramework.junit5.impl.AbstractInvocationInterceptor.interceptTestMethod(AbstractInvocationInterceptor.kt:29) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:156) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:147) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:86) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(InterceptingExecutableInvoker.java:103) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.lambda$invoke$0(InterceptingExecutableInvoker.java:93) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:92) at org.junit.jupiter.engine.execution.InterceptingExecutableInvoker.invoke(InterceptingExecutableInvoker.java:86) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:217) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:213) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:138) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:68) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.base/java.util.ArrayList.forEach(ArrayList.java:1596) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:147) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:127) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:90) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:55) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:102) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:54) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.processAllTestClasses(JUnitPlatformTestClassProcessor.java:119) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor$CollectAllTestClassesExecutor.access$000(JUnitPlatformTestClassProcessor.java:94) at org.gradle.api.internal.tasks.testing.junitplatform.JUnitPlatformTestClassProcessor.stop(JUnitPlatformTestClassProcessor.java:89) at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.stop(SuiteTestClassProcessor.java:62) at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) at java.base/java.lang.reflect.Method.invoke(Method.java:580) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) at jdk.proxy1/jdk.proxy1.$Proxy2.stop(Unknown Source) at org.gradle.api.internal.tasks.testing.worker.TestWorker$3.run(TestWorker.java:193) at org.gradle.api.internal.tasks.testing.worker.TestWorker.executeAndMaintainThreadName(TestWorker.java:129) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:100) at org.gradle.api.internal.tasks.testing.worker.TestWorker.execute(TestWorker.java:60) at org.gradle.process.internal.worker.child.ActionExecutionWorker.execute(ActionExecutionWorker.java:56) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:113) at org.gradle.process.internal.worker.child.SystemApplicationClassLoaderWorker.call(SystemApplicationClassLoaderWorker.java:65) at worker.org.gradle.process.internal.worker.GradleWorkerMain.run(GradleWorkerMain.java:69) at worker.org.gradle.process.internal.worker.GradleWorkerMain.main(GradleWorkerMain.java:74) Caused by: com.intellij.remoterobot.utils.WaitForConditionTimeoutException: Exceeded timeout (PT20S) for condition function (Failed to find 'Container' by '//div[@Class='JPanel']//div[@Class='HyperlinkLabel' and @mytext.key='daemon.tooltip.more.actions.link.label']' in 20s) at com.intellij.remoterobot.utils.RepeatUtilsKt.waitFor(RepeatUtils.kt:51) at com.intellij.remoterobot.utils.RepeatUtilsKt.waitFor$default(RepeatUtils.kt:37) at com.intellij.remoterobot.SearchContext$find$1.invoke(SearchContext.kt:53) at com.intellij.remoterobot.SearchContext$find$1.invoke(SearchContext.kt:51) at com.intellij.remoterobot.stepsProcessing.StepWorkerKt.step(StepWorker.kt:23) at com.intellij.remoterobot.SearchContext$DefaultImpls.find(SearchContext.kt:51) at com.intellij.remoterobot.fixtures.ContainerFixture.find(ContainerFixture.kt:12) at io.openliberty.tools.intellij.it.fixtures.ProjectFrameFixture.getQuickFixMoreActionsLink(ProjectFrameFixture.java:294) at io.openliberty.tools.intellij.it.UIBotTestUtils.hoverForQuickFixInAppFile(UIBotTestUtils.java:861) ... 89 more

@angelozerr
Copy link
Contributor

@dessina-devasia before spending time to investigate your issue I would like to know if you have the same problem with MicroProfile and IJ Quarkus because me I have never seen this issue in IJ Quarkus

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants