OpenLiberty / OpenLiberty/liberty-tools-eclipse

Install failure installing Liberty Tools after having installed Liberty Developer Tools

Open
#523 3 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

verify
Dominant language
Java
Stars
16
Forks
20
Avg merge
2d 9h
Merged PRs (30d)
16

Description

Installing this sequence:

  1. Enterprise Java - 2024-06
  2. LDT - https://marketplace.eclipse.org/content/ibm-liberty-developer-tools
  3. LT 24.0.9 driver (internal-only but this is now the 'main' contents at the time of this issue).
    the third step fails to complete.

So far this has only been observed on Windows.

An error is shown in the install wizard UI that maps to this message in the workspace log:

!MESSAGE Missing requirement: Liberty Tools Support for Language Servers 24.0.9.202409170137 (io.openliberty.tools.eclipse.lsp4e 24.0.9.202409170137) requires 'osgi.bundle; org.eclipse.lsp4mp.jdt.core 0.0.0' but it could not be found

There are some earlier messages in the logs like these:

!ENTRY org.eclipse.equinox.p2.metadata.repository 4 0 2024-09-20 11:29:53.178

!MESSAGE Unexpected error loading extension: org.eclipse.equinox.p2.metadata.repository.compositeRepository

!STACK 0

java.lang.LinkageError: loader constraint violation: loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @1fb0ab37 wants to load class org.apache.hc.client5.http.impl.classic.HttpClientBuilder. A different class with the same name was previously loaded by org.eclipse.osgi.internal.loader.EquinoxClassLoader @6a6e671f. (org.apache.hc.client5.http.impl.classic.HttpClientBuilder is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @6a6e671f, parent loader 'platform')

	at org.eclipse.ecf.internal.provider.filetransfer.httpclient5.Activator.getHttpClientFactory(Activator.java:247)

	at org.eclipse.ecf.internal.provider.filetransfer.httpclient5.Activator.registerHttpClient(Activator.java:290)

	at org.eclipse.ecf.internal.provider.filetransfer.httpclient5.Activator.getBrowseHttpClient(Activator.java:264)

	at org.eclipse.ecf.provider.filetransfer.httpclient5.HttpClientBrowseFileTransferFactory$1.sendBrowseRequest(HttpClientBrowseFileTransferFactory.java:59)

	at org.eclipse.ecf.provider.filetransfer.browse.MultiProtocolFileSystemBrowserAdapter.sendBrowseRequest(MultiProtocolFileSystemBrowserAdapter.java:97)

	at org.eclipse.equinox.internal.p2.transport.ecf.FileInfoReader.sendBrowseRequest(FileInfoReader.java:183)

	at org.eclipse.equinox.internal.p2.transport.ecf.FileInfoReader.getRemoteFiles(FileInfoReader.java:108)

	at org.eclipse.equinox.internal.p2.transport.ecf.FileInfoReader.getRemoteFile(FileInfoReader.java:124)

	at org.eclipse.equinox.internal.p2.transport.ecf.FileInfoReader.getLastModified(FileInfoReader.java:129)

	at org.eclipse.equinox.internal.p2.transport.ecf.RepositoryTransport.getLastModified(RepositoryTransport.java:275)

	at org.eclipse.oomph.p2.internal.core.CachingTransport.delegateGetLastModified(CachingTransport.java:427)

	at org.eclipse.oomph.p2.internal.core.CachingTransport.getLastModified(CachingTransport.java:364)

	at org.eclipse.equinox.internal.p2.repository.CacheManager.getLastModified(CacheManager.java:278)

	at org.eclipse.equinox.internal.p2.repository.CacheManager.createCache(CacheManager.java:195)

	at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepositoryFactory.getLocalFile(CompositeMetadataRepositoryFactory.java:77)

	at org.eclipse.equinox.internal.p2.metadata.repository.CompositeMetadataRepositoryFactory.load(CompositeMetadataRepositoryFactory.java:100)

	at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.factoryLoad(MetadataRepositoryManager.java:63)

	at org.eclipse.equinox.internal.p2.repository.helpers.AbstractRepositoryManager.loadRepository(AbstractRepositoryManager.java:799)

	at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)

	at java.base/java.lang.reflect.Method.invoke(Method.java:580)

	at org.eclipse.oomph.util.ReflectUtil.invokeMethod(ReflectUtil.java:119)

	at org.eclipse.oomph.p2.internal.core.CachingRepositoryManager.loadRepository(CachingRepositoryManager.java:448)

	at org.eclipse.oomph.p2.internal.core.CachingRepositoryManager.loadRepository(CachingRepositoryManager.java:231)

	at org.eclipse.oomph.p2.internal.core.CachingRepositoryManager$Metadata.loadRepository(CachingRepositoryManager.java:520)

	at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:110)

	at org.eclipse.equinox.internal.p2.metadata.repository.MetadataRepositoryManager.loadRepository(MetadataRepositoryManager.java:105)

	at org.eclipse.equinox.p2.engine.ProvisioningContext.loadMetadataRepository(ProvisioningContext.java:253)

	at org.eclipse.equinox.p2.engine.ProvisioningContext.getLoadedMetadataRepositories(ProvisioningContext.java:235)

	at org.eclipse.equinox.p2.engine.ProvisioningContext.getMetadata(ProvisioningContext.java:317)

	at org.eclipse.equinox.internal.p2.operations.RequestFlexer.findIUsWithSameId(RequestFlexer.java:317)

	at org.eclipse.equinox.internal.p2.operations.RequestFlexer.findAllVersionsAvailable(RequestFlexer.java:310)

	at org.eclipse.equinox.internal.p2.operations.RequestFlexer.loosenUpOriginalRequest(RequestFlexer.java:254)

	at org.eclipse.equinox.internal.p2.operations.RequestFlexer.computeLooseRequest(RequestFlexer.java:217)

	at org.eclipse.equinox.internal.p2.operations.RequestFlexer.getChangeRequest(RequestFlexer.java:89)

	at org.eclipse.equinox.p2.operations.RemediationOperation.computeRemedy(RemediationOperation.java:154)

	at org.eclipse.equinox.p2.operations.RemediationOperation.computeAllRemediations(RemediationOperation.java:113)

	at org.eclipse.equinox.p2.operations.RemediationOperation.computeProfileChangeRequest(RemediationOperation.java:97)

	at org.eclipse.equinox.p2.operations.RemediationOperation.lambda$0(RemediationOperation.java:223)

	at org.eclipse.equinox.internal.p2.operations.RemediationResolutionJob.runModal(RemediationResolutionJob.java:41)

	at org.eclipse.equinox.p2.operations.ProfileChangeOperation.resolveModal(ProfileChangeOperation.java:117)

	at org.eclipse.equinox.internal.p2.ui.dialogs.ProvisioningOperationWizard.computeRemediationOperation(ProvisioningOperationWizard.java:317)

	at org.eclipse.equinox.internal.p2.ui.dialogs.ProvisioningOperationWizard.lambda$10(ProvisioningOperationWizard.java:351)

	at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:124)

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the Windows installation sequence for Enterprise Java 2024-06, Liberty Developer Tools, and the Liberty Tools 24.0.9 driver, then inspect the workspace log and the missing org.eclipse.lsp4mp.jdt.core requirement. Trace the Equinox p2 and ECF HttpClient5 errors shown in the stack trace; done means Liberty Tools installs successfully after Liberty Developer Tools.

Written by the indexing model from the issue text.

Assessment

Tech stack
java
Domain
developer-experience, devtools
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.