Bug 466682 - LinkageError in HttpTransporter.execute (287)
Summary: LinkageError in HttpTransporter.execute (287)
Status: NEW
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Aether (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact:
URL:
Whiteboard: Please provide steps to reproduce. Th...
Keywords: needinfo
Depends on:
Blocks:
 
Reported: 2015-05-07 03:26 EDT by EPP Error Reports CLA
Modified: 2017-02-23 14:08 EST (History)
2 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description EPP Error Reports CLA 2015-05-07 03:26:44 EDT
The following incident was reported via the automated error reporting:


    code:                   2
    plugin:                 org.eclipse.core.jobs_3.6.1.v20150304-1110
    message:                HIDDEN
    fingerprint:            0b4d47c3
    exception class:        java.lang.LinkageError
    exception message:      HIDDEN
    number of children:     0
    
    java.lang.LinkageError: HIDDEN
    at org.apache.http.impl.conn.DefaultHttpRoutePlanner.determineRoute(DefaultHttpRoutePlanner.java:107)
    at org.apache.http.impl.client.DefaultRequestDirector.determineRoute(DefaultRequestDirector.java:762)
    at org.apache.http.impl.client.DefaultRequestDirector.execute(DefaultRequestDirector.java:381)
    at org.apache.http.impl.client.AbstractHttpClient.doExecute(AbstractHttpClient.java:864)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:72)
    at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:57)
    at org.apache.http.impl.client.DecompressingHttpClient.execute(DecompressingHttpClient.java:158)
    at org.eclipse.aether.transport.http.HttpTransporter.execute(HttpTransporter.java:287)
    at org.eclipse.aether.transport.http.HttpTransporter.implGet(HttpTransporter.java:243)
    at org.eclipse.aether.spi.connector.transport.AbstractTransporter.get(AbstractTransporter.java:59)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$GetTaskRunner.runTask(BasicRepositoryConnector.java:447)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$TaskRunner.run(BasicRepositoryConnector.java:350)
    at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:67)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector$DirectExecutor.execute(BasicRepositoryConnector.java:581)
    at org.eclipse.aether.connector.basic.BasicRepositoryConnector.get(BasicRepositoryConnector.java:222)
    at org.eclipse.aether.internal.impl.DefaultMetadataResolver$ResolveTask.run(DefaultMetadataResolver.java:607)
    at org.eclipse.aether.util.concurrency.RunnableErrorForwarder$1.run(RunnableErrorForwarder.java:67)
    at org.eclipse.aether.internal.impl.DefaultMetadataResolver$1.execute(DefaultMetadataResolver.java:527)
    at org.eclipse.aether.internal.impl.DefaultMetadataResolver.resolve(DefaultMetadataResolver.java:382)
    at org.eclipse.aether.internal.impl.DefaultMetadataResolver.resolveMetadata(DefaultMetadataResolver.java:205)
    at org.apache.maven.repository.internal.DefaultVersionResolver.resolveVersion(DefaultVersionResolver.java:250)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:302)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:246)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:223)
    at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveArtifact(DefaultRepositorySystem.java:294)
    at org.eclipse.recommenders.models.ModelRepository.resolveInternal(ModelRepository.java:186)
    at org.eclipse.recommenders.models.ModelRepository.resolve(ModelRepository.java:168)
    at com.codetrails.connect.internal.hippie.rcp.WoodstockModelRepository.resolve(WoodstockModelRepository.java:85)
    at org.eclipse.recommenders.internal.models.rcp.DownloadModelArchiveJob.run(DownloadModelArchiveJob.java:75)
    at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)
   
  

General Information:

    reported-by:      
    anonymous-id:     f1b882af-86c0-435e-9a0a-aeeb9ff6aae6
    eclipse-build-id: 4.4.2.Z20150304-1109
    eclipse-product:  org.eclipse.platform.ide
    operating system: Linux 3.19.5.fc21 (x86_64) - gtk
    jre-version:      1.8.0_45-b13

The following plug-ins were present on the execution stack (*):
    1. com.codetrails.connect.hippie.rcp_1.4.0.v20150430-1833-b1665
    2. com.codetrails.connect.hippie_1.4.0.v20150430-1833-b1665
    3. org.eclipse.aether.connector.basic_1.0.1.v20141111
    4. org.eclipse.aether.impl_1.0.1.v20141111
    5. org.eclipse.aether.spi_1.0.1.v20141111
    6. org.eclipse.aether.transport.http_1.0.1.v20141111
    7. org.eclipse.aether.util_1.0.1.v20141111
    8. org.eclipse.core.jobs_3.6.1.v20150304-1110
    9. org.eclipse.recommenders.models_2.1.14.v20150423-1305
    10. org.eclipse.recommenders.models.rcp_2.1.14.v20150423-1305

Please note that:
* Messages, stacktraces, and nested status objects may be shortened.
* Bug fields like status, resolution, and whiteboard are sent
  back to reporters.
* The list of present bundles and their respective versions was
  calculated by package naming heuristics. This may or may not reflect reality.

Other Resources:
* Report: https://dev.eclipse.org/recommenders/committers/confess/#/problems/554a8e0be4b02db8ca300506  
* Manual: https://dev.eclipse.org/recommenders/community/confess/#/guide


Thank you for your assistance.
Your friendly error-reports-inbox.
Comment 1 Johannes Dorn CLA 2015-05-07 03:30:57 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.
Comment 2 Andreas Sewe CLA 2015-05-07 05:07:43 EDT
(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.