Fwd: clean build doesn't generate package private class

Christopher Hegarty - Sun Microsystems Ireland Christopher.Hegarty at Sun.COM
Fri Mar 6 11:54:15 UTC 2009

Hi Doug,

This is very strange. I just synced with the latest JDK7 source from TL 
and did a clean build, everything went fine, I have a Parts.class

As you said, this is a clean build, right? Not a incremental.

Running a few tests with javac I can see that if you compile URL.java 
then you will always compile Parts, even if the compile of URL.java has 
been triggered implicitly by a reference from another class ( and this 
is typically the case when building the JDK ).

The only thing I can suggest is to resync the repository and try a full 
clean build. Failing that cd  jdk/make/java/net, make clobber, make all. 
That will rebuild URL.java which will produce Parts.class.


On 03/05/09 17:16, Doug Felt wrote:
> resend, bounced the first time
> ---------- Forwarded message ----------
> From: Doug Felt <dougfelt at google.com>
> Date: Tue, Mar 3, 2009 at 1:52 PM
> Subject: clean build doesn't generate package private class
> To: build-dev at openjdk.java.net
> I recently fetched jdk7 (after not having done so for a few months) and did
> a clean rebuild, and the VM is failing to start.  I'm building on Ubuntu
> (2.6.27-11-generic) on i586.  Sanity passes.
> make all CC=gcc-4.1 CPP=g++-4.1
> On startup I get the following stack trace:
> Error occurred during initialization of VM
> java.lang.NoClassDefFoundError: java/net/Parts
>     at java.net.URL.<init>(URL.java:396)
>     at java.net.URL.<init>(URL.java:300)
>     at java.net.URL.<init>(URL.java:323)
>     at sun.net.www.ParseUtil.fileToEncodedURL(ParseUtil.java:272)
>     at sun.misc.Launcher.getFileURL(Launcher.java:442)
>     at sun.misc.Launcher$ExtClassLoader.getExtURLs(Launcher.java:190)
>     at sun.misc.Launcher$ExtClassLoader.<init>(Launcher.java:161)
>     at sun.misc.Launcher$ExtClassLoader$1.run(Launcher.java:145)
>     at sun.misc.Launcher$ExtClassLoader$1.run(Launcher.java:139)
>     at java.security.AccessController.doPrivileged(Native Method)
>     at sun.misc.Launcher$ExtClassLoader.getExtClassLoader(Launcher.java:138)
>     at sun.misc.Launcher.<init>(Launcher.java:71)
>     at sun.misc.Launcher.<clinit>(Launcher.java:59)
>     at java.lang.ClassLoader.initSystemClassLoader(ClassLoader.java:1325)
>     at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1307)
> Looking in the classes directory, I see that although URL.class is present,
> Parts.class is not.  Parts.class is a package private class defined at the
> top level in the same source file as URL.java.
> Does anyone recognize this problem?  How do I work around this?  Do I need a
> new bootstrap build, or different compiler options?

More information about the build-dev mailing list