--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/jdk/test/javax/swing/JLayer/SerializationTest/SerializationTest.java Mon Aug 10 16:29:30 2009 +0400
@@ -0,0 +1,53 @@
+/*
+ * @test
+ * @summary Makes sure that JLayer is synchronizable
+ * @author Alexander Potochkin
+ * @run main SerializationTest
+ */
+
+import javax.swing.*;
+import javax.swing.plaf.LayerUI;
+import java.io.ByteArrayInputStream;
+import java.io.ObjectOutputStream;
+import java.io.ObjectInputStream;
+import java.io.ByteArrayOutputStream;
+
+public class SerializationTest {
+
+ public static void main(String[] args) throws Exception {
+ ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
+ ObjectOutputStream outputStream = new ObjectOutputStream(byteArrayOutputStream);
+
+ JLayer<JButton> layer = new JLayer<JButton>(new JButton("Hello"));
+
+ layer.setUI(new TestLayerUI<JButton>());
+
+ outputStream.writeObject(layer);
+ outputStream.flush();
+
+ ByteArrayInputStream byteArrayInputStream =
+ new ByteArrayInputStream(byteArrayOutputStream.toByteArray());
+ ObjectInputStream inputStream = new ObjectInputStream(byteArrayInputStream);
+
+ JLayer newLayer = (JLayer) inputStream.readObject();
+
+ if (newLayer.getLayout() == null) {
+ throw new RuntimeException("JLayer's layout is null");
+ }
+ if (newLayer.getGlassPane() == null) {
+ throw new RuntimeException("JLayer's glassPane is null");
+ }
+ if (newLayer.getUI().getClass() != layer.getUI().getClass()) {
+ throw new RuntimeException("Different UIs");
+ }
+ if (newLayer.getView().getClass() != layer.getView().getClass()) {
+ throw new RuntimeException("Different Views");
+ }
+ }
+
+ static class TestLayerUI<V extends JComponent> extends LayerUI<V> {
+ public String toString() {
+ return "TestLayerUI";
+ }
+ }
+}
\ No newline at end of file