Bug 218794 - Azureus won't start (bouncycastle related?)
Azureus won't start (bouncycastle related?)
Status: CLOSED RAWHIDE
Product: Fedora
Classification: Fedora
Component: azureus (Show other bugs)
6
All Linux
medium Severity high
: ---
: ---
Assigned To: Anthony Green
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2006-12-07 10:47 EST by E Mair
Modified: 2007-11-30 17:11 EST (History)
6 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2006-12-17 10:20:03 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description E Mair 2006-12-07 10:47:47 EST
Description of problem:
Azureus will not start. See error message below.
I was asked to file a new bug report in the thread attached to bug #216485

Version-Release number of selected component (if applicable):
azureus-2.5.0.0-9.fc6
eclipse-*-3.2.1-23.fc6
libswt3-gtk2-3.2.1-23.fc6
bouncycastle-1.34-1
Sun JRE 1.5.0-09


How reproducible:
Always

Steps to Reproduce:
1. Update azureus, eclipse, libswt3-gtk2 and bouncycastle to the latest release
versions
2. Run azureus

  
Actual results:
$ azureus
Exception in thread "main" java.lang.NoClassDefFoundError:
org/bouncycastle/jce/spec/ECParameterSpec
        at
com.aelitis.azureus.core.security.impl.CryptoManagerImpl.<init>(CryptoManagerImpl.java:75)
        at
com.aelitis.azureus.core.security.impl.CryptoManagerImpl.getSingleton(CryptoManagerImpl.java:60)
        at
com.aelitis.azureus.core.security.CryptoManagerFactory.getSingleton(CryptoManagerFactory.java:33)
        at
com.aelitis.azureus.core.impl.AzureusCoreImpl.<init>(AzureusCoreImpl.java:155)
        at
com.aelitis.azureus.core.impl.AzureusCoreImpl.create(AzureusCoreImpl.java:92)
        at
com.aelitis.azureus.core.AzureusCoreFactory.create(AzureusCoreFactory.java:46)
        at org.gudy.azureus2.ui.swt.Main.<init>(Main.java:143)
        at org.gudy.azureus2.ui.swt.Main.main(Main.java:162)
Comment 1 Alan Sanderson 2006-12-07 11:48:02 EST
I get a similar problem. 
$azureus &
changeLocale: *Default Language* != English (United States). Searching without
country..
changeLocale: Searching for language English in *any* country..
changeLocale: no message properties for Locale 'English (United States)'
(en_US), using 'English (default)'
Exception in thread "main" java.lang.NoClassDefFoundError:
org/bouncycastle/jce/spec/ECParameterSpec
        at
com.aelitis.azureus.core.security.impl.CryptoManagerImpl.<init>(CryptoManagerImpl.java:75)
        at
com.aelitis.azureus.core.security.impl.CryptoManagerImpl.getSingleton(CryptoManagerImpl.java:60)
        at
com.aelitis.azureus.core.security.CryptoManagerFactory.getSingleton(CryptoManagerFactory.java:33)
        at
com.aelitis.azureus.core.impl.AzureusCoreImpl.<init>(AzureusCoreImpl.java:155)
        at
com.aelitis.azureus.core.impl.AzureusCoreImpl.create(AzureusCoreImpl.java:92)
        at
com.aelitis.azureus.core.AzureusCoreFactory.create(AzureusCoreFactory.java:46)
        at org.gudy.azureus2.ui.swt.Main.<init>(Main.java:143)
        at org.gudy.azureus2.ui.swt.Main.main(Main.java:162)

The only difference with me is that I am using Sun Java 1.6.0-RC and eclipse is
not installed
Comment 2 Thomas Fitzsimmons 2006-12-07 13:29:58 EST
The class is in the new jar:

$ jar tf /usr/share/java/gcj-endorsed/bcprov-1.34.jar | grep ECParameterSpec
org/bouncycastle/jce/spec/ECParameterSpec.class

How does Azureus load this jar?  Does it rely on it being on the endorsed
classpath or load it directly?
Comment 3 Thomas Fitzsimmons 2006-12-07 14:26:26 EST
It specifies it directly:

$ tail -n 1 /usr/bin/azureus 
LD_LIBRARY_PATH=/usr/lib/eclipse:/usr/lib
CLASSPATH=/usr/share/java/gcj-endorsed/bcprov-1.33.jar:/usr/lib/eclipse/swt-gtk-3.2.jar:`build-classpath
jakarta-commons-cli log4j gtk2.8 glib0.2`:/usr/share/azureus/Azureus2.jar java
-Dgnu.gcj.runtime.VMClassLoader.library_control=never
-Dazureus.install.path=$APPDIR org.gudy.azureus2.ui.swt.Main "$@"

Anthony, do you want an unversioned bcprov.jar symlink in /usr/share/java to
rely on, rather than relying on a specific version?

The new layout I'm considering is:

/usr/share/java/bcprov-1.34.jar
/usr/share/java/bcprov.jar -> bcprov-1.34.jar
/usr/share/java/gcj-endorsed/bcprov.jar -> /usr/share/java/bcprov.jar

That way VMs that don't load endorsed jars from /usr/share/java/gcj-endorsed can
be supported by adding /usr/share/java/bcprov.jar to the classpath.
Comment 4 Thomas Fitzsimmons 2006-12-11 16:47:18 EST
I built bouncycastle-1.34-2.fc6 into dist-fc6-updates-candidate, which includes
this layout:

/usr/share/java/bcprov-1.34.jar
/usr/share/java/bcprov.jar -> bcprov-1.34.jar
/usr/share/java/gcj-endorsed/bcprov-1.34.jar -> /usr/share/java/bcprov-1.34.jar

Please rebuild Azureus to include /usr/share/java/bcprov.jar on its CLASSPATH so
that it is insulated from future BouncyCastle version updates.
Comment 5 Anthony Green 2006-12-17 10:20:03 EST
(In reply to comment #4)
> Please rebuild Azureus to include /usr/share/java/bcprov.jar on its CLASSPATH so
> that it is insulated from future BouncyCastle version updates.

Thanks.  The rebuilt version should show up in FC-6 and rawhide shortly.
Comment 6 Alan Sanderson 2007-03-06 01:35:35 EST
Just tried to run azureus-2.5.0.0-11.fc6 and I am still getting the same problems.

[root@FC6-P4-2266 ~]# azureus &
[1] 3455
[root@FC6-P4-2266 ~]# changeLocale: *Default Language* != English (United
States). Searching without country..
changeLocale: Searching for language English in *any* country..
changeLocale: no message properties for Locale 'English (United States)'
(en_US), using 'English (default)'
Exception in thread "main" java.lang.NoClassDefFoundError:
org/bouncycastle/jce/spec/ECParameterSpec
        at
com.aelitis.azureus.core.security.impl.CryptoManagerImpl.<init>(CryptoManagerImpl.java:75)
        at
com.aelitis.azureus.core.security.impl.CryptoManagerImpl.getSingleton(CryptoManagerImpl.java:60)
        at
com.aelitis.azureus.core.security.CryptoManagerFactory.getSingleton(CryptoManagerFactory.java:33)
        at
com.aelitis.azureus.core.impl.AzureusCoreImpl.<init>(AzureusCoreImpl.java:155)
        at
com.aelitis.azureus.core.impl.AzureusCoreImpl.create(AzureusCoreImpl.java:92)
        at
com.aelitis.azureus.core.AzureusCoreFactory.create(AzureusCoreFactory.java:46)
        at org.gudy.azureus2.ui.swt.Main.<init>(Main.java:143)
        at org.gudy.azureus2.ui.swt.Main.main(Main.java:162)

Note You need to log in before you can comment on or make changes to this bug.