From 3de99e1f32ddd3d62a229a00802146a92eda17ae Mon Sep 17 00:00:00 2001 From: Kris De Volder Date: Thu, 29 Nov 2018 11:31:15 -0800 Subject: [PATCH] Try to gather more info about DelegatingStreamConnectionProvider classloading error --- .../boot/ls/DelegatingStreamConnectionProvider.java | 10 ++++++++-- .../commons/LanguageServerCommonsActivator.java | 4 ++++ 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/DelegatingStreamConnectionProvider.java b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/DelegatingStreamConnectionProvider.java index 954e3d16c..460408daf 100644 --- a/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/DelegatingStreamConnectionProvider.java +++ b/eclipse-language-servers/org.springframework.tooling.boot.ls/src/org/springframework/tooling/boot/ls/DelegatingStreamConnectionProvider.java @@ -22,6 +22,7 @@ import java.util.stream.Collectors; import org.apache.commons.lang3.tuple.Pair; import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.Assert; import org.eclipse.jface.util.IPropertyChangeListener; import org.eclipse.lsp4e.server.StreamConnectionProvider; import org.eclipse.lsp4j.DidChangeConfigurationParams; @@ -29,6 +30,7 @@ import org.eclipse.lsp4j.InitializeResult; import org.eclipse.lsp4j.jsonrpc.messages.Message; import org.eclipse.lsp4j.jsonrpc.messages.ResponseMessage; import org.eclipse.lsp4j.services.LanguageServer; +import org.springframework.tooling.ls.eclipse.commons.LanguageServerCommonsActivator; import org.springsource.ide.eclipse.commons.livexp.core.ValueListener; import com.google.common.collect.ImmutableSet; @@ -54,11 +56,15 @@ public class DelegatingStreamConnectionProvider implements StreamConnectionProvi private final ValueListener>> remoteAppsListener = (e, v) -> sendConfiguration(); public DelegatingStreamConnectionProvider() { + LanguageServerCommonsActivator.logInfo("Entering DelegatingStreamConnectionProvider()"); String port = System.getProperty("boot-java-ls-port"); if (port != null) { this.provider = new SpringBootLanguageServerViaSocket(Integer.parseInt(port)); - } - else { + } else { + LanguageServerCommonsActivator.logInfo("DelegatingStreamConnectionProvider classloader = "+this.getClass().getClassLoader()); + Assert.isNotNull(SpringBootLanguageServer.class); + LanguageServerCommonsActivator.logInfo("SpringBootLanguageServer exists!"); + Assert.isLegal(SpringBootLanguageServer.class.getClassLoader().equals(DelegatingStreamConnectionProvider.class.getClassLoader()), "OSGI bug messing up our classloaders?"); this.provider = new SpringBootLanguageServer(); } } diff --git a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/LanguageServerCommonsActivator.java b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/LanguageServerCommonsActivator.java index b5683867c..e4c0c4b84 100644 --- a/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/LanguageServerCommonsActivator.java +++ b/eclipse-language-servers/org.springframework.tooling.ls.eclipse.commons/src/org/springframework/tooling/ls/eclipse/commons/LanguageServerCommonsActivator.java @@ -145,4 +145,8 @@ public class LanguageServerCommonsActivator extends AbstractUIPlugin { public static void logError(Throwable t, String message) { instance.getLog().log(new Status(IStatus.ERROR, instance.getBundle().getSymbolicName(), message, t)); } + + public static void logInfo(String message) { + instance.getLog().log(new Status(IStatus.INFO, instance.getBundle().getSymbolicName(), message)); + } }