We are seeing a NoClassDefFoundError when we run a test case.
We only saw this error on Solaris-sparc, not on Linux.
I'm sort of perplexed as to why it is happening.
I did a fresh bringover and a clean build. I can see the classfile
in my workspace. The permissions are -rw-rw-rw- just like all the
other files.
This isn't reproducible in the promoted build: java_g -verbose:class
shows that the class is loaded correctly. The reason is that the
promoted build loads classes from rt.jar. The bug is only reproducible
when classes are loaded from the build directory.
We tested this using the 2D integration build for Merlin build 89.
Dmitri built images. When using rt.jar, the class is loaded. When loading
from the build directory of the same build, we get the NoClassDefFoundError.
I've reproduced this in several builds, on different machines, dating back
several weeks.
/net/jano/export/disk03/awt/echawkes/jdk14-87/build/solaris-sparc/bin/java Test
java.lang.NoClassDefFoundError: sun/awt/datatransfer/ClipboardTransferable
at sun.awt.datatransfer.SunClipboard.getContents(SunClipboard.java:83)
at Test$1.run(Test.java:13)
at java.lang.Thread.run(Thread.java:539)
echawkes@gradgrind:/home/bchristi/work/4532299( 204 )%
Here are the last few lines from a run of java_g -verbose:class
[Loaded java.awt.datatransfer.Transferable from
/net/jano/export/disk03/awt/echawkes/jdk14-87/build/solaris-sparc/classes]
[Loaded java.util.ListIterator from
/net/jano/export/disk03/awt/echawkes/jdk14-87/build/solaris-sparc/classes]
[Loaded java.util.LinkedList$ListItr from
/net/jano/export/disk03/awt/echawkes/jdk14-87/build/solaris-sparc/classes]
[Loaded sun.reflect.NativeMethodAccessorImpl from
/net/jano/export/disk03/awt/echawkes/jdk14-87/build/solaris-sparc/classes]
[Loaded sun.reflect.DelegatingMethodAccessorImpl from
/net/jano/export/disk03/awt/echawkes/jdk14-87/build/solaris-sparc/classes]
[Loaded sun.awt.motif.X11Selection from
/net/jano/export/disk03/awt/echawkes/jdk14-87/build/solaris-sparc/classes]
java.lang.NoClassDefFoundError: sun/awt/datatransfer/ClipboardTransferable
at sun.awt.datatransfer.SunClipboard.getContents(SunClipboard.java:83)
at Test$1.run(Test.java:13)
at java.lang.Thread.run(Thread.java:539)
Test case is:
import java.awt.Toolkit;
import java.awt.datatransfer.*;
public class Test {
public static void main(String[] args) {
final Object o = new Object();
final Runnable r = new Runnable() {
public void run() {
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemSelection();
synchronized (o) {
o.notifyAll();
}
Transferable t = clipboard.getContents(null);
}
};
final Thread t = new Thread(r);
synchronized (o) {
t.start();
try {
o.wait();
} catch (InterruptedException ie) {
ie.printStackTrace();
}
}
t.interrupt();
}
}
Please note: the test case above will hang if the class is loaded correctly.
We discovered the classloader problem while trying to verify the fix for
4532299. The diffs that fix that hang are in the Suggested Fix section of
4532299.
###@###.### 2001-12-05
Update: test works correctly when using -server -Xcomp
NoClassDefFoundError thrown when using -client
NoClassDefFoundError thrown when using -Xint
###@###.### 2001-12-05
We only saw this error on Solaris-sparc, not on Linux.
I'm sort of perplexed as to why it is happening.
I did a fresh bringover and a clean build. I can see the classfile
in my workspace. The permissions are -rw-rw-rw- just like all the
other files.
This isn't reproducible in the promoted build: java_g -verbose:class
shows that the class is loaded correctly. The reason is that the
promoted build loads classes from rt.jar. The bug is only reproducible
when classes are loaded from the build directory.
We tested this using the 2D integration build for Merlin build 89.
Dmitri built images. When using rt.jar, the class is loaded. When loading
from the build directory of the same build, we get the NoClassDefFoundError.
I've reproduced this in several builds, on different machines, dating back
several weeks.
/net/jano/export/disk03/awt/echawkes/jdk14-87/build/solaris-sparc/bin/java Test
java.lang.NoClassDefFoundError: sun/awt/datatransfer/ClipboardTransferable
at sun.awt.datatransfer.SunClipboard.getContents(SunClipboard.java:83)
at Test$1.run(Test.java:13)
at java.lang.Thread.run(Thread.java:539)
echawkes@gradgrind:/home/bchristi/work/4532299( 204 )%
Here are the last few lines from a run of java_g -verbose:class
[Loaded java.awt.datatransfer.Transferable from
/net/jano/export/disk03/awt/echawkes/jdk14-87/build/solaris-sparc/classes]
[Loaded java.util.ListIterator from
/net/jano/export/disk03/awt/echawkes/jdk14-87/build/solaris-sparc/classes]
[Loaded java.util.LinkedList$ListItr from
/net/jano/export/disk03/awt/echawkes/jdk14-87/build/solaris-sparc/classes]
[Loaded sun.reflect.NativeMethodAccessorImpl from
/net/jano/export/disk03/awt/echawkes/jdk14-87/build/solaris-sparc/classes]
[Loaded sun.reflect.DelegatingMethodAccessorImpl from
/net/jano/export/disk03/awt/echawkes/jdk14-87/build/solaris-sparc/classes]
[Loaded sun.awt.motif.X11Selection from
/net/jano/export/disk03/awt/echawkes/jdk14-87/build/solaris-sparc/classes]
java.lang.NoClassDefFoundError: sun/awt/datatransfer/ClipboardTransferable
at sun.awt.datatransfer.SunClipboard.getContents(SunClipboard.java:83)
at Test$1.run(Test.java:13)
at java.lang.Thread.run(Thread.java:539)
Test case is:
import java.awt.Toolkit;
import java.awt.datatransfer.*;
public class Test {
public static void main(String[] args) {
final Object o = new Object();
final Runnable r = new Runnable() {
public void run() {
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemSelection();
synchronized (o) {
o.notifyAll();
}
Transferable t = clipboard.getContents(null);
}
};
final Thread t = new Thread(r);
synchronized (o) {
t.start();
try {
o.wait();
} catch (InterruptedException ie) {
ie.printStackTrace();
}
}
t.interrupt();
}
}
Please note: the test case above will hang if the class is loaded correctly.
We discovered the classloader problem while trying to verify the fix for
4532299. The diffs that fix that hang are in the Suggested Fix section of
4532299.
###@###.### 2001-12-05
Update: test works correctly when using -server -Xcomp
NoClassDefFoundError thrown when using -client
NoClassDefFoundError thrown when using -Xint
###@###.### 2001-12-05
- duplicates
-
JDK-4378073 InterruptedException thrown from Math library (DUAL-PROCESSOR machine)
-
- Closed
-
-
JDK-4764778 Interrupted thread can't load classes from classes directory (sol)
-
- Closed
-
- relates to
-
JDK-4532299 Neverending loop in sun.awt.datatransfer.SunClipboard.getContents
-
- Closed
-