[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Eclipse 3.0

From: Mark Wielaard
Subject: RE: Eclipse 3.0
Date: Sat, 03 Jul 2004 13:14:37 +0200


On Sat, 2004-07-03 at 10:43, Jeroen Frijters wrote:
> Mark Wielaard wrote:
> > OK, finally found it. Eclipse does some really nasty URLStreamHandler
> > tricks. It seems to depend on us NOT trying to find a new
> > URLStreamHandler when the URL.set() method is called. Kind of makes
> > sense if the protocol isn't changed. So doing something like:
> > 
> >   if (!this.protocol.equals(protocol))
> >     {
> >       URLStreamHandler protocolHandler = 
> > getURLStreamHandler(protocol);
> >       [...]
> > 
> > Gets us a little further.
> Thanks! This allows M9 to start up successfully for me! Inspired by this
> success I downloaded the 3.0 release, but unfortunately that still
> doesn't work and bizarelly enough it dies with the exact same
> NullPointerException that M9 died with before this fix. Sigh...

Great! Did you also make the fix that I suggested as reply to one of the
emails from Roman? Our URL.getPath() follows the spec, which is not what
eclipse expects...

@@ -535,7 +535,9 @@
   public String getPath()
-    int quest = (file == null) ? -1 : file.indexOf('?');
+    if (file == null)
+      return null;
+    int quest = file.indexOf('?');
     return quest < 0 ? getFile() : file.substring(0, quest);

> > Since they decided not to automagically include their own XML stuff
> > since M9... So you need libxmlj or something like xalan added to your
> > bootclasspath. I tried that, but I now have jamvm crashing. Rebuilding
> > libgcj with the above patches now. But first some sleep.
> I don't think that's new to M9, I've had to start 3.0 with the following
> command line for as long as I remember:
> eclipse -vm c:\ikvm\bin\ikvm.exe -vmargs
> -Xbootclasspath:C:\xalan-j_2_6_0\bin\xalan.jar;C:\xalan-j_2_6_0\bin\xerc
> esImpl.jar;C:\xalan-j_2_6_0\bin\xml-apis.jar

That was really special for ikvm (and precompiled native eclipse with
gcj). They at least tried to do something horrible to get it working
automagically (although bending the spec horribly by retracting a jar
from a URL/Delegating ClassLoader and depending on super lazy class
loading...) It is probably better that they don't try to do such tricks

> BTW, what Eclipse version are you using? from

I am still just using what is described here:
Plus the above two patches to java/net/ mentioned above.
And I start it all up by:
 PATH=.:/usr/local/jamvm/bin ./eclipse -vm jamvm -debug -consoleLog -vmargs 
-bootclasspath/p /tmp/xalan 

Where /tmp/xalan contains all the (extracted!) jar files from

It is good to see both Anthony and you able to get it starting up now.
That means my Classpath library work is done ! :)

Now the rest of the work can be offloaded to the runtime hackers.
(CC Robert!)
I still get the following errors during startup from jamvm:

java.lang.IncompatibleClassChangeError: unimplemented interface
   at org.eclipse.ui.keys.KeyStroke.hashCode (
   at java.util.HashMap.hash (

java.lang.IncompatibleClassChangeError: unimplemented interface
   at org.eclipse.ui.keys.KeyStroke.equals (
   at java.util.AbstractMap.equals (
   at java.util.HashMap.get (

I worked around these by recompiling and not calling
hashCode() and equals() on the modifiers SortedSet.

Looks like some subtle class loading/instanceof bug to me.
I first thought our Collections.UnmodifiableSet class wasn't correct

Then I finally get:

java.lang.NoClassDefFoundError: org/eclipse/swt/custom/CTabFolder
   at org.eclipse.ui.internal.presentations.PaneFolder.<init>

Which doesn't make sense :{

Note that it does give the graphical splash screen and then the "Where
do you want your Workspace dialog" first. So most of the startup process
is actually completed by then.

BTW. I was confused by the fact that there are multiple (error) logs in
the configuration directory and the workspace/.metadata/.log file...



Attachment: signature.asc
Description: This is a digitally signed message part

reply via email to

[Prev in Thread] Current Thread [Next in Thread]