T
Thomas Hawtin
Does anyone use serialised applets these days? Or ever did?
Everything works fine in the appletviewer, but not under the Sun
Plug-In. I have tried using both Opera 9 and Mozilla 1.7 on Solaris,
using 1.5.0_09. No joy. 1.4.2 does not appear to work with Opera. I get
a NullPointerException that appears to be caused by failing to load the
serialised file/URL as a resource. If the URL does not actually exist I
can get a FileNotFoundException instead.
The simple self-contained example thing:
import java.io.*;
class MakeSimple {
public static void main(String[] args) throws Exception {
FileOutputStream rawOut = new FileOutputStream("applet.ser");
try {
ObjectOutputStream out = new ObjectOutputStream(
new BufferedOutputStream(rawOut)
) {
};
out.writeObject(new SimpleApplet());
//out.writeObject(new java.applet.Applet());
out.flush();
} finally {
rawOut.close();
}
}
}
public class SimpleApplet extends java.applet.Applet {
}
<applet object="applet.ser" width="100" height="100"></applet>
It wouldn't surprise me if no-one used it. Swing components aren't
compatible across releases (and presumably vendors). It took me almost
two years after 1.5 was released to file the bug about Swing components,
by default, not being ables to be deserialised by untrusted code.
Tom Hawtin
Everything works fine in the appletviewer, but not under the Sun
Plug-In. I have tried using both Opera 9 and Mozilla 1.7 on Solaris,
using 1.5.0_09. No joy. 1.4.2 does not appear to work with Opera. I get
a NullPointerException that appears to be caused by failing to load the
serialised file/URL as a resource. If the URL does not actually exist I
can get a FileNotFoundException instead.
The simple self-contained example thing:
import java.io.*;
class MakeSimple {
public static void main(String[] args) throws Exception {
FileOutputStream rawOut = new FileOutputStream("applet.ser");
try {
ObjectOutputStream out = new ObjectOutputStream(
new BufferedOutputStream(rawOut)
) {
};
out.writeObject(new SimpleApplet());
//out.writeObject(new java.applet.Applet());
out.flush();
} finally {
rawOut.close();
}
}
}
public class SimpleApplet extends java.applet.Applet {
}
<applet object="applet.ser" width="100" height="100"></applet>
It wouldn't surprise me if no-one used it. Swing components aren't
compatible across releases (and presumably vendors). It took me almost
two years after 1.5 was released to file the bug about Swing components,
by default, not being ables to be deserialised by untrusted code.
Tom Hawtin