Version
Latest nightly
Operating System
Linux/Unix
Bug description
Trying to fetch/pull via ssh with latest Eclipse SDK 4.41 and latest jgit/egit fails.
The problem is that during jgit/egit installation into SDK, the bcpkix bundle is fetched in 1.84 version, which depends on all other bc* bundles in 1.84 version, while platform already switched to 1.85 (except for bcpkix which is not used by SDK). So the resulting installation has both sets of "bc" bundles in 1.84 + 1.85 versions, and only one bcpkix in 1.84 version.
Now while pulling, following error happens: some "bc" classes are loaded from older "bc" bundles, some from new, and the mix doesn't work:
eclipse.buildId=4.41.0.I20260713-2300
java.version=25
java.vendor=Eclipse Adoptium
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=en_US
Command-line arguments: -os linux -ws gtk -arch x86_64 -data file:/data/4x_platform_workspace/
org.eclipse.egit.core
Error
Tue Jul 14 10:54:23 CEST 2026
ssh://git@some_company_server:7999/ec/eclipse_jdt_junit_runners.git: DefaultConnectFuture[git@some_company_server/10.206.118.55:7999]: Failed (ClassCastException) to execute: class org.bouncycastle.jcajce.provider.asymmetric.edec.BC15EdDSAPublicKey cannot be cast to class org.bouncycastle.jcajce.interfaces.EdDSAPublicKey (org.bouncycastle.jcajce.provider.asymmetric.edec.BC15EdDSAPublicKey is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @428db7cf; org.bouncycastle.jcajce.interfaces.EdDSAPublicKey is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @3a831218)
org.eclipse.jgit.api.errors.TransportException: ssh://git@some_company_server:7999/ec/eclipse_jdt_junit_runners.git: DefaultConnectFuture[git@some_company_server/10.206.118.55:7999]: Failed (ClassCastException) to execute: class org.bouncycastle.jcajce.provider.asymmetric.edec.BC15EdDSAPublicKey cannot be cast to class org.bouncycastle.jcajce.interfaces.EdDSAPublicKey (org.bouncycastle.jcajce.provider.asymmetric.edec.BC15EdDSAPublicKey is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @428db7cf; org.bouncycastle.jcajce.interfaces.EdDSAPublicKey is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @3a831218)
at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:249)
at org.eclipse.jgit.api.PullCommand.call(PullCommand.java:273)
at org.eclipse.egit.core.op.PullOperation$PullJob.run(PullOperation.java:256)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
Caused by: org.eclipse.jgit.errors.TransportException: ssh://git@some_company_server:7999/ec/eclipse_jdt_junit_runners.git: DefaultConnectFuture[git@some_company_server/10.206.118.55:7999]: Failed (ClassCastException) to execute: class org.bouncycastle.jcajce.provider.asymmetric.edec.BC15EdDSAPublicKey cannot be cast to class org.bouncycastle.jcajce.interfaces.EdDSAPublicKey (org.bouncycastle.jcajce.provider.asymmetric.edec.BC15EdDSAPublicKey is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @428db7cf; org.bouncycastle.jcajce.interfaces.EdDSAPublicKey is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @3a831218)
at org.eclipse.jgit.transport.sshd.SshdSessionFactory.getSession(SshdSessionFactory.java:267)
at org.eclipse.jgit.transport.sshd.SshdSessionFactory.getSession(SshdSessionFactory.java:1)
at org.eclipse.jgit.transport.SshTransport.getSession(SshTransport.java:107)
at org.eclipse.jgit.transport.TransportGitSsh$SshFetchConnection.<init>(TransportGitSsh.java:285)
at org.eclipse.jgit.transport.TransportGitSsh.openFetch(TransportGitSsh.java:152)
at org.eclipse.jgit.transport.FetchProcess.executeImp(FetchProcess.java:165)
at org.eclipse.jgit.transport.FetchProcess.execute(FetchProcess.java:105)
at org.eclipse.jgit.transport.Transport.fetch(Transport.java:1459)
at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:238)
... 3 more
Caused by: org.apache.sshd.common.SshException: DefaultConnectFuture[git@some_company_server/10.206.118.55:7999]: Failed (ClassCastException) to execute: class org.bouncycastle.jcajce.provider.asymmetric.edec.BC15EdDSAPublicKey cannot be cast to class org.bouncycastle.jcajce.interfaces.EdDSAPublicKey (org.bouncycastle.jcajce.provider.asymmetric.edec.BC15EdDSAPublicKey is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @428db7cf; org.bouncycastle.jcajce.interfaces.EdDSAPublicKey is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @3a831218)
at org.apache.sshd.common.future.AbstractSshFuture.lambda$verifyResult$2(AbstractSshFuture.java:146)
at org.apache.sshd.common.future.AbstractSshFuture.formatExceptionMessage(AbstractSshFuture.java:206)
at org.apache.sshd.common.future.AbstractSshFuture.verifyResult(AbstractSshFuture.java:145)
at org.apache.sshd.client.future.DefaultConnectFuture.verify(DefaultConnectFuture.java:55)
at org.apache.sshd.client.future.DefaultConnectFuture.verify(DefaultConnectFuture.java:36)
at org.apache.sshd.common.future.VerifiableFuture.verify(VerifiableFuture.java:121)
at org.eclipse.jgit.transport.sshd.SshdSession.connect(SshdSession.java:215)
at org.eclipse.jgit.transport.sshd.SshdSession.connect(SshdSession.java:146)
at org.eclipse.jgit.transport.sshd.SshdSession.connect(SshdSession.java:100)
at org.eclipse.jgit.transport.sshd.SshdSessionFactory.getSession(SshdSessionFactory.java:260)
... 11 more
Caused by: java.lang.ClassCastException: class org.bouncycastle.jcajce.provider.asymmetric.edec.BC15EdDSAPublicKey cannot be cast to class org.bouncycastle.jcajce.interfaces.EdDSAPublicKey (org.bouncycastle.jcajce.provider.asymmetric.edec.BC15EdDSAPublicKey is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @428db7cf; org.bouncycastle.jcajce.interfaces.EdDSAPublicKey is in unnamed module of loader org.eclipse.osgi.internal.loader.EquinoxClassLoader @3a831218)
at org.apache.sshd.common.util.security.eddsa.bouncycastle.BouncyCastleEdDSASupport.generateEDDSAPublicKey(BouncyCastleEdDSASupport.java:114)
at org.apache.sshd.common.util.security.eddsa.bouncycastle.BouncyCastleEdDSASupport.generateEDDSAPublicKey(BouncyCastleEdDSASupport.java:48)
at org.apache.sshd.common.util.security.eddsa.generic.GenericEd25519PublicKeyDecoder.decodePublicKey(GenericEd25519PublicKeyDecoder.java:95)
at org.apache.sshd.common.config.keys.PublicKeyEntryDecoder.decodePublicKeyByType(PublicKeyEntryDecoder.java:76)
at org.apache.sshd.common.config.keys.PublicKeyRawDataDecoder.decodePublicKey(PublicKeyRawDataDecoder.java:62)
at org.apache.sshd.common.config.keys.PublicKeyRawDataDecoder.decodePublicKey(PublicKeyRawDataDecoder.java:51)
at org.apache.sshd.common.config.keys.PublicKeyEntryDecoder.resolve(PublicKeyEntryDecoder.java:55)
at org.apache.sshd.common.config.keys.PublicKeyEntry.resolvePublicKey(PublicKeyEntry.java:154)
at org.apache.sshd.common.config.keys.AuthorizedKeyEntry.resolvePublicKey(AuthorizedKeyEntry.java:109)
at org.eclipse.jgit.internal.transport.sshd.OpenSshServerKeyDatabase$HostKeyFile.reload(OpenSshServerKeyDatabase.java:716)
at org.eclipse.jgit.internal.transport.sshd.OpenSshServerKeyDatabase$HostKeyFile.get(OpenSshServerKeyDatabase.java:691)
at org.eclipse.jgit.internal.transport.sshd.OpenSshServerKeyDatabase.lookup(OpenSshServerKeyDatabase.java:187)
at org.eclipse.jgit.internal.transport.sshd.JGitServerKeyVerifier.lookup(JGitServerKeyVerifier.java:72)
at org.eclipse.jgit.internal.transport.sshd.JGitClientSession.resolveAvailableSignaturesProposal(JGitClientSession.java:282)
at org.apache.sshd.common.session.helpers.SessionHelper.resolveAvailableSignaturesProposal(SessionHelper.java:959)
at org.apache.sshd.common.session.helpers.SessionHelper.getKexProposal(SessionHelper.java:984)
at org.apache.sshd.common.session.helpers.AbstractSession.sendKexInit(AbstractSession.java:2733)
at org.eclipse.jgit.internal.transport.sshd.JGitClientSession.sendKexInit(JGitClientSession.java:208)
at org.apache.sshd.client.session.AbstractClientSession.initializeKeyExchangePhase(AbstractClientSession.java:318)
at org.apache.sshd.client.session.ClientSessionImpl.start(ClientSessionImpl.java:98)
at org.apache.sshd.common.session.helpers.AbstractSessionIoHandler.sessionCreated(AbstractSessionIoHandler.java:52)
at org.apache.sshd.common.io.nio2.Nio2Connector$ConnectionCompletionHandler.onCompleted(Nio2Connector.java:216)
at org.apache.sshd.common.io.nio2.Nio2Connector$ConnectionCompletionHandler.onCompleted(Nio2Connector.java:182)
at org.apache.sshd.common.io.nio2.Nio2Connector.lambda$connect$1(Nio2Connector.java:111)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:545)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:328)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1090)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:614)
at java.base/java.lang.Thread.run(Thread.java:1474)
Actual behavior
Pull via ssh not working
Expected behavior
Pull via ssh works
Relevant log output
Other information
No response
Version
Latest nightly
Operating System
Linux/Unix
Bug description
Trying to fetch/pull via ssh with latest Eclipse SDK 4.41 and latest jgit/egit fails.
The problem is that during jgit/egit installation into SDK, the
bcpkixbundle is fetched in 1.84 version, which depends on all otherbc*bundles in 1.84 version, while platform already switched to 1.85 (except forbcpkixwhich is not used by SDK). So the resulting installation has both sets of "bc" bundles in 1.84 + 1.85 versions, and only onebcpkixin 1.84 version.Now while pulling, following error happens: some "bc" classes are loaded from older "bc" bundles, some from new, and the mix doesn't work:
Actual behavior
Pull via ssh not working
Expected behavior
Pull via ssh works
Relevant log output
Other information
No response