Summary: | LinkageError in HttpTransporter.execute (287) | ||
---|---|---|---|
Product: | z_Archived | Reporter: | EPP Error Reports <error-reports-inbox> |
Component: | Aether | Assignee: | Project Inbox <aether.core-inbox> |
Status: | NEW --- | QA Contact: | |
Severity: | normal | ||
Priority: | P3 | CC: | johannes.dorn, sewe |
Version: | unspecified | Keywords: | needinfo |
Target Milestone: | --- | ||
Hardware: | All | ||
OS: | All | ||
See Also: | https://bugs.eclipse.org/bugs/show_bug.cgi?id=466003 | ||
Whiteboard: | Please provide steps to reproduce. Thank you. |
Description
EPP Error Reports
2015-05-07 03:26:44 EDT
Even though the user used Hippie completion, the exception happened in code that was triggered by the Recommenders ModelRepository. We need more information on what is happening here. A non-hidden exception message would be helpful. (In reply to Johannes Dorn from comment #1) > Even though the user used Hippie completion, the exception happened in code > that was triggered by the Recommenders ModelRepository. > > We need more information on what is happening here. A non-hidden exception > message would be helpful. I agree. Also, knowing the org.apache.http.* bundle versions would help. (I wonder why the they are missing from the "The following plug-ins were present on the execution stack" list.) That being said, the top frames' line numbers *all* match org.apache.httpcomponents.httpclient 4.3.6.v201411290715, so line 107 of DefaultHttpRoutePlanner would be > schm = this.schemeRegistry.getScheme(target.getSchemeName()); As far as I can see, both Scheme and SchemeRegistry come from the same bundle as DefaultHttpRoutePlanner and are final, so they are guaranteed to be loaded with the same classloader as DefaultHttpRoutePlanner. Only "target" is an instance of a type (HttpHost) from a different bundle (org.apache.httpcomponents.httpcore), so there might be potential for a LinkageError. Now, this HttpHost object originates in Aether code, namely in org.eclipse.aether.transport.http.HttpTransporter.execute(HttpTransporter.java:287): > HttpResponse response = client.execute( server, request, context ); The object is then is simply passed through the org.apache.http.impl frames, miraculously without a single method being invoked on it until DefaultHttpRoutePlanner, line 107! I highly suspect that the getSchemeName() call is what causes the JVM to check for class loader constraint violates. Alas, I don't know the JVM spec *that* well to explain why the LinkageError only occurs that late, but I strongly suspect that HttpTransporter and DefaultHttpRoutePlanner "see" HttpHost with a different classloader. Reassigning the bug to the Aether project, as Code Recommenders is just the client code invoking Aether here. |