From 75d8abca488e399bf002a7b4889c8c3384b278f4 Mon Sep 17 00:00:00 2001 From: azerr Date: Tue, 3 Oct 2023 16:05:53 +0200 Subject: [PATCH] fix: NoClassDefFoundError: org/apache/commons/lang/exception/ExceptionUtils in IJ 2023.3 EAP Fixes #1191 Signed-off-by: azerr --- .../console/LSPConsoleToolWindowPanel.java | 21 ++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/redhat/devtools/intellij/lsp4ij/console/LSPConsoleToolWindowPanel.java b/src/main/java/com/redhat/devtools/intellij/lsp4ij/console/LSPConsoleToolWindowPanel.java index c5690748a..ab6f097fc 100644 --- a/src/main/java/com/redhat/devtools/intellij/lsp4ij/console/LSPConsoleToolWindowPanel.java +++ b/src/main/java/com/redhat/devtools/intellij/lsp4ij/console/LSPConsoleToolWindowPanel.java @@ -37,12 +37,13 @@ import com.redhat.devtools.intellij.lsp4ij.console.explorer.LanguageServerTreeNode; import com.redhat.devtools.intellij.lsp4ij.settings.ServerTrace; import com.redhat.devtools.intellij.lsp4ij.settings.UserDefinedLanguageServerSettings; -import org.apache.commons.lang.exception.ExceptionUtils; import org.jetbrains.annotations.NotNull; import javax.swing.*; import javax.swing.tree.DefaultMutableTreeNode; import java.awt.*; +import java.io.PrintWriter; +import java.io.StringWriter; import java.util.HashSet; import java.util.Set; @@ -218,7 +219,7 @@ public void run() { } ServerTrace newServerTrace = settings.getServerTrace(); if (newServerTrace != null && !newServerTrace.equals(serverTraceComboBox.getSelectedItem())) { - serverTraceComboBox.setSelectedItem(newServerTrace); + serverTraceComboBox.setSelectedItem(newServerTrace); } } }; @@ -249,7 +250,7 @@ public void showMessage(String message) { } public void showError(Throwable exception) { - String stacktrace = ExceptionUtils.getStackTrace(exception); + String stacktrace = getStackTrace(exception); consoleView.print(stacktrace, ConsoleViewContentType.ERROR_OUTPUT); } @@ -304,4 +305,18 @@ public void dispose() { private boolean isDisposed() { return disposed || project.isDisposed(); } + + /** + * Code copied from https://github.com/apache/commons-lang/blob/24744a40b2c094945e542b71cc1fbf59caa0d70b/src/main/java/org/apache/commons/lang3/exception/ExceptionUtils.java#L400C5-L407C6 + * @param throwable + * @return + */ + private static String getStackTrace(final Throwable throwable) { + if (throwable == null) { + return ""; + } + final StringWriter sw = new StringWriter(); + throwable.printStackTrace(new PrintWriter(sw, true)); + return sw.toString(); + } }