admin管理员组

文章数量:1435859

I am currently configuring my Eclipse IDE (2024-09, Windows OS) for a java course. It requires me to install several plugins (Checkstyle, SpotBugs, SubEclipse, Eclipse Web Developer Tools) but all of my tries get stuck at some random location in the process of installing. (Specifically, it shows that it is fetching something, as the images show) Some of the "fetching" processes are smooth, and then it gets stuck at one "fetching" process, different for each try, never switching to the next process.

I install through Help -> Install New Software... -> Add... (Name, Location from the Internet) -> Next> / Finish.

The issue may be because I did not trust all authorities. However, the installation process actually did not show me any page or choice to trust all. My Eclipse 2024-06 met the same problem when installing the plugins before, and I do not remember how I solved this problem. But now when I need to switch to Eclipse 2024-09 due to JUnit compatibility problems, I have the same problem.

I did not receive any error, just got stuck.

I have tried several times, selecting "Trust all content" in preferences but still fail to install any of the plugins.

The Installation Page (Options are default selected)

Stuck when installing CheckStyle

Another try, stuck when installing:

In a third try, it got stuck in another place:

When going to Preferences -> Install/Update -> Available Software Sites, it shows me the following:

This is the content of the "Error Log" view:

Eclipse log:

!SESSION 2024-11-15 14:47:07.473 -----------------------------------------------
eclipse.buildId=4.33.0.20240905-0613
java.version=21.0.4
java.vendor=Eclipse Adoptium
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=zh_CN
Framework arguments:  -product .eclipse.epp.package.java.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product .eclipse.epp.package.java.product

!ENTRY ch.qos.logback.classic 1 0 2024-11-15 14:47:10.082
!MESSAGE Activated before the state location was initialized. Retry after the state location is initialized.

!ENTRY ch.qos.logback.classic 1 0 2024-11-15 14:47:11.196
!MESSAGE Logback config file: D:\Desktop\landepen\OSU-CSE-2221\workspace\.metadata\.plugins\.eclipse.m2e.logback\logback.2.6.1.20240411-1122.xml

!ENTRY .eclipse.egit.ui 2 0 2024-11-15 14:47:16.167
!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git
user global configuration and to define the default location to store repositories: 'C:\Users\123'. If this is
not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
EGit might behave differently since they see different configuration options.
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.

!ENTRY .eclipse.core.jobs 2 2 2024-11-15 14:52:13.623
!MESSAGE Job found still running after platform shutdown.  Jobs should be canceled by the plugin that scheduled them during shutdown: .eclipse.equinox.p2.operations.ProfileModificationJob RUNNING
     at java.base/jdk.internal.misc.Unsafe.park(Native Method)
     at java.base/java.util.concurrent.locks.LockSupport.park(LockSupport.java:221)
     at java.base/java.util.concurrent.CompletableFuture$Signaller.block(CompletableFuture.java:1864)
     at java.base/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3780)
     at java.base/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3725)
     at java.base/java.util.concurrent.CompletableFuture.waitingGet(CompletableFuture.java:1898)
     at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2072)
     at .eclipse.equinox.internal.p2.engine.phases.AuthorityChecker.lambda$10(AuthorityChecker.java:268)
     at java.base/java.util.Optional.ifPresent(Optional.java:178)
     at .eclipse.equinox.internal.p2.engine.phases.AuthorityChecker.gatherCertificates(AuthorityChecker.java:266)
     at .eclipse.equinox.internal.p2.engine.phases.AuthorityChecker.getCertificates(AuthorityChecker.java:246)
     at .eclipse.equinox.internal.p2.engine.phases.AuthorityChecker.start(AuthorityChecker.java:125)
     at .eclipse.equinox.internal.p2.engine.phases.CollectpletePhase(Collect.java:97)
     at .eclipse.equinox.internal.p2.engine.Phase.postPerform(Phase.java:254)
     at .eclipse.equinox.internal.p2.engine.Phase.perform(Phase.java:105)
     at .eclipse.equinox.internal.p2.engine.PhaseSet.perform(PhaseSet.java:65)
     at .eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:95)
     at .eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:49)
     at .eclipse.equinox.p2.operations.ProvisioningSession.performProvisioningPlan(ProvisioningSession.java:175)
     at .eclipse.equinox.p2.operations.ProfileModificationJob.runModal(ProfileModificationJob.java:76)
     at .eclipse.equinox.p2.operations.ProvisioningJob.run(ProvisioningJob.java:187)
     at .eclipse.core.internal.jobs.Worker.run(Worker.java:63)

Here is some information that may be useful from jcmd:

"Worker-1: Installing Software" #74 [19812] prio=5 os_prio=0 cpu=468.75ms elapsed=452.35s tid=0x00000298917e9110 nid=19812 waiting on condition  [0x000000a64083e000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
        - parking to wait for  <0x00000000c7700090> (a java.util.concurrent.CompletableFuture$Signaller)
        at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:221)
        at java.util.concurrent.CompletableFuture$Signaller.block([email protected]/CompletableFuture.java:1864)
        at java.util.concurrent.ForkJoinPool.unmanagedBlock([email protected]/ForkJoinPool.java:3780)
        at java.util.concurrent.ForkJoinPool.managedBlock([email protected]/ForkJoinPool.java:3725)
        at java.util.concurrent.CompletableFuture.waitingGet([email protected]/CompletableFuture.java:1898)
        at java.util.concurrent.CompletableFuture.get([email protected]/CompletableFuture.java:2072)
        at .eclipse.equinox.internal.p2.engine.phases.AuthorityChecker.lambda$10(AuthorityChecker.java:268)
        at .eclipse.equinox.internal.p2.engine.phases.AuthorityChecker$$Lambda/0x0000000100fb28b8.accept(Unknown Source)
        at java.util.Optional.ifPresent([email protected]/Optional.java:178)
        at .eclipse.equinox.internal.p2.engine.phases.AuthorityChecker.gatherCertificates(AuthorityChecker.java:266)
        at .eclipse.equinox.internal.p2.engine.phases.AuthorityChecker.getCertificates(AuthorityChecker.java:246)
        at .eclipse.equinox.internal.p2.engine.phases.AuthorityChecker.start(AuthorityChecker.java:125)
        at .eclipse.equinox.internal.p2.engine.phases.CollectpletePhase(Collect.java:97)
        at .eclipse.equinox.internal.p2.engine.Phase.postPerform(Phase.java:254)
        at .eclipse.equinox.internal.p2.engine.Phase.perform(Phase.java:105)
        at .eclipse.equinox.internal.p2.engine.PhaseSet.perform(PhaseSet.java:65)
        at .eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:95)
        at .eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:49)
        at .eclipse.equinox.p2.operations.ProvisioningSession.performProvisioningPlan(ProvisioningSession.java:175)
        at .eclipse.equinox.p2.operations.ProfileModificationJob.runModal(ProfileModificationJob.java:76)
        at .eclipse.equinox.p2.operations.ProvisioningJob.run(ProvisioningJob.java:187)
        at .eclipse.core.internal.jobs.Worker.run(Worker.java:63)

I am currently configuring my Eclipse IDE (2024-09, Windows OS) for a java course. It requires me to install several plugins (Checkstyle, SpotBugs, SubEclipse, Eclipse Web Developer Tools) but all of my tries get stuck at some random location in the process of installing. (Specifically, it shows that it is fetching something, as the images show) Some of the "fetching" processes are smooth, and then it gets stuck at one "fetching" process, different for each try, never switching to the next process.

I install through Help -> Install New Software... -> Add... (Name, Location from the Internet) -> Next> / Finish.

The issue may be because I did not trust all authorities. However, the installation process actually did not show me any page or choice to trust all. My Eclipse 2024-06 met the same problem when installing the plugins before, and I do not remember how I solved this problem. But now when I need to switch to Eclipse 2024-09 due to JUnit compatibility problems, I have the same problem.

I did not receive any error, just got stuck.

I have tried several times, selecting "Trust all content" in preferences but still fail to install any of the plugins.

The Installation Page (Options are default selected)

Stuck when installing CheckStyle

Another try, stuck when installing:

In a third try, it got stuck in another place:

When going to Preferences -> Install/Update -> Available Software Sites, it shows me the following:

This is the content of the "Error Log" view:

Eclipse log:

!SESSION 2024-11-15 14:47:07.473 -----------------------------------------------
eclipse.buildId=4.33.0.20240905-0613
java.version=21.0.4
java.vendor=Eclipse Adoptium
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=zh_CN
Framework arguments:  -product .eclipse.epp.package.java.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product .eclipse.epp.package.java.product

!ENTRY ch.qos.logback.classic 1 0 2024-11-15 14:47:10.082
!MESSAGE Activated before the state location was initialized. Retry after the state location is initialized.

!ENTRY ch.qos.logback.classic 1 0 2024-11-15 14:47:11.196
!MESSAGE Logback config file: D:\Desktop\landepen\OSU-CSE-2221\workspace\.metadata\.plugins\.eclipse.m2e.logback\logback.2.6.1.20240411-1122.xml

!ENTRY .eclipse.egit.ui 2 0 2024-11-15 14:47:16.167
!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git
user global configuration and to define the default location to store repositories: 'C:\Users\123'. If this is
not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
EGit might behave differently since they see different configuration options.
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.

!ENTRY .eclipse.core.jobs 2 2 2024-11-15 14:52:13.623
!MESSAGE Job found still running after platform shutdown.  Jobs should be canceled by the plugin that scheduled them during shutdown: .eclipse.equinox.p2.operations.ProfileModificationJob RUNNING
     at java.base/jdk.internal.misc.Unsafe.park(Native Method)
     at java.base/java.util.concurrent.locks.LockSupport.park(LockSupport.java:221)
     at java.base/java.util.concurrent.CompletableFuture$Signaller.block(CompletableFuture.java:1864)
     at java.base/java.util.concurrent.ForkJoinPool.unmanagedBlock(ForkJoinPool.java:3780)
     at java.base/java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3725)
     at java.base/java.util.concurrent.CompletableFuture.waitingGet(CompletableFuture.java:1898)
     at java.base/java.util.concurrent.CompletableFuture.get(CompletableFuture.java:2072)
     at .eclipse.equinox.internal.p2.engine.phases.AuthorityChecker.lambda$10(AuthorityChecker.java:268)
     at java.base/java.util.Optional.ifPresent(Optional.java:178)
     at .eclipse.equinox.internal.p2.engine.phases.AuthorityChecker.gatherCertificates(AuthorityChecker.java:266)
     at .eclipse.equinox.internal.p2.engine.phases.AuthorityChecker.getCertificates(AuthorityChecker.java:246)
     at .eclipse.equinox.internal.p2.engine.phases.AuthorityChecker.start(AuthorityChecker.java:125)
     at .eclipse.equinox.internal.p2.engine.phases.CollectpletePhase(Collect.java:97)
     at .eclipse.equinox.internal.p2.engine.Phase.postPerform(Phase.java:254)
     at .eclipse.equinox.internal.p2.engine.Phase.perform(Phase.java:105)
     at .eclipse.equinox.internal.p2.engine.PhaseSet.perform(PhaseSet.java:65)
     at .eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:95)
     at .eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:49)
     at .eclipse.equinox.p2.operations.ProvisioningSession.performProvisioningPlan(ProvisioningSession.java:175)
     at .eclipse.equinox.p2.operations.ProfileModificationJob.runModal(ProfileModificationJob.java:76)
     at .eclipse.equinox.p2.operations.ProvisioningJob.run(ProvisioningJob.java:187)
     at .eclipse.core.internal.jobs.Worker.run(Worker.java:63)

Here is some information that may be useful from jcmd:

"Worker-1: Installing Software" #74 [19812] prio=5 os_prio=0 cpu=468.75ms elapsed=452.35s tid=0x00000298917e9110 nid=19812 waiting on condition  [0x000000a64083e000]
   java.lang.Thread.State: WAITING (parking)
        at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
        - parking to wait for  <0x00000000c7700090> (a java.util.concurrent.CompletableFuture$Signaller)
        at java.util.concurrent.locks.LockSupport.park([email protected]/LockSupport.java:221)
        at java.util.concurrent.CompletableFuture$Signaller.block([email protected]/CompletableFuture.java:1864)
        at java.util.concurrent.ForkJoinPool.unmanagedBlock([email protected]/ForkJoinPool.java:3780)
        at java.util.concurrent.ForkJoinPool.managedBlock([email protected]/ForkJoinPool.java:3725)
        at java.util.concurrent.CompletableFuture.waitingGet([email protected]/CompletableFuture.java:1898)
        at java.util.concurrent.CompletableFuture.get([email protected]/CompletableFuture.java:2072)
        at .eclipse.equinox.internal.p2.engine.phases.AuthorityChecker.lambda$10(AuthorityChecker.java:268)
        at .eclipse.equinox.internal.p2.engine.phases.AuthorityChecker$$Lambda/0x0000000100fb28b8.accept(Unknown Source)
        at java.util.Optional.ifPresent([email protected]/Optional.java:178)
        at .eclipse.equinox.internal.p2.engine.phases.AuthorityChecker.gatherCertificates(AuthorityChecker.java:266)
        at .eclipse.equinox.internal.p2.engine.phases.AuthorityChecker.getCertificates(AuthorityChecker.java:246)
        at .eclipse.equinox.internal.p2.engine.phases.AuthorityChecker.start(AuthorityChecker.java:125)
        at .eclipse.equinox.internal.p2.engine.phases.CollectpletePhase(Collect.java:97)
        at .eclipse.equinox.internal.p2.engine.Phase.postPerform(Phase.java:254)
        at .eclipse.equinox.internal.p2.engine.Phase.perform(Phase.java:105)
        at .eclipse.equinox.internal.p2.engine.PhaseSet.perform(PhaseSet.java:65)
        at .eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:95)
        at .eclipse.equinox.internal.p2.engine.Engine.perform(Engine.java:49)
        at .eclipse.equinox.p2.operations.ProvisioningSession.performProvisioningPlan(ProvisioningSession.java:175)
        at .eclipse.equinox.p2.operations.ProfileModificationJob.runModal(ProfileModificationJob.java:76)
        at .eclipse.equinox.p2.operations.ProvisioningJob.run(ProvisioningJob.java:187)
        at .eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Share Improve this question edited Nov 15, 2024 at 21:50 One_True asked Nov 15, 2024 at 20:13 One_TrueOne_True 133 bronze badges 11
  • 1 Can you try removing the checkstyle update site, restarting Eclipse and trying again? – dan1st Commented Nov 15, 2024 at 20:14
  • @dan1st It doesn't work. The progress is still stuck. – One_True Commented Nov 15, 2024 at 21:41
  • Can you try making a thread dump while it is stuck? You can type jcmd which should tell you the process ID of all running Java processes (including Eclipse) and then you can run jcmd <process ID of Eclipse> Thread.print. Please include the output of that in your question as it could provide useful information. If it contains sensitive data, you can replace it with something like REDACTED. – dan1st Commented Nov 15, 2024 at 21:44
  • The part of the thread dump you included contains waiting on condition [0x000000a64083e000] - is there anything else in the JFR output including 0x000000a64083e000? From the thread dump, it seems like the issue actually happens in the certificate checking. – dan1st Commented Nov 15, 2024 at 21:52
  • And looking at the relevant source code, it seems like an HTTP request is not finishing. Are you behind some proxy or similar? – dan1st Commented Nov 15, 2024 at 21:57
 |  Show 6 more comments

1 Answer 1

Reset to default 0

What happens

Eclipse sends a request to all configured authorities to find all (trusted) certificates. One of your trusted authorities seem to accept the connection but doesn't respond to it (or the connection gets stuck somewhere in the response). Since Eclipse doesn't have a timeout for collecting all the authority certificates, it waits for the response forever.

The fix is implemented

I have contributed a fix of this issue which got merged. It will probably be in the 2025-03 release. With this fix, it should stop trying to resolve the host certificate from the problematic server after it not working with 3 attempts (can be configured with the .eclipse.equinox.p2.engine.certificateRequestRetries property) each having a timeout of 5 seconds (can be configured using the .eclipse.equinox.p2.engine.certificateRequestTimeout property (in milliseconds)). So by default, it should continue after 15 seconds and ignore that authority. If you want it to be faster, you should be able to reduce these properties by editing your eclipse.ini (add the following somewhere after -vmargs):

-D.eclipse.equinox.p2.engine.certificateRequestRetries=1
-D.eclipse.equinox.p2.engine.certificateRequestTimeout=3000

Working around it

In Window > Preferences > Install/Update > Trust, you can find a tab "Authorities". This tab lists all configured authorities.

It seems like one of them doesn't respond to the request so you would probably need to remove that from the authorities by clicking the "Remove" button after selecting the authority causing the issue. To find that authority, you can run curl --head https://your.authority for all configured authority (obviously replacing the link). If you don't get a response, remove it from the list of authorities.

本文标签: javaNot Able to Install Plugins EclipseStack Overflow