Bug 218794 - Azureus won't start (bouncycastle related?)
Summary: Azureus won't start (bouncycastle related?)
Keywords:
Status: CLOSED RAWHIDE
Alias: None
Product: Fedora
Classification: Fedora
Component: azureus
Version: 6
Hardware: All
OS: Linux
medium
high
Target Milestone: ---
Assignee: Anthony Green
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2006-12-07 15:47 UTC by E Mair
Modified: 2007-11-30 22:11 UTC (History)
6 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2006-12-17 15:20:03 UTC
Type: ---
Embargoed:


Attachments (Terms of Use)

Description E Mair 2006-12-07 15:47:47 UTC
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 16:48:02 UTC
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 18:29:58 UTC
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 19:26:26 UTC
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 21:47:18 UTC
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 15:20:03 UTC
(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 06:35:35 UTC
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.