You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

Util.java 1.9KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import java.io.File;
  2. import java.io.FileInputStream;
  3. import java.io.FileOutputStream;
  4. import java.io.InvalidClassException;
  5. import java.io.IOException;
  6. import java.io.ObjectInputStream;
  7. import java.io.ObjectOutputStream;
  8. import java.io.ObjectStreamClass;
  9. //import java.util.Arrays;
  10. //import java.util.List;
  11. import org.aspectj.testing.Tester;
  12. public class Util {
  13. public final static String DEFAULT_COMMAND = "-read";
  14. public final static String DEFAULT_NAME = "test.ser";
  15. public static void fail (String name) throws Exception {
  16. try {
  17. Object obj = read(name);
  18. Tester.checkFailed("java.io.InvalidClassException");
  19. }
  20. catch (InvalidClassException ex) {
  21. System.out.println("? Util.fail() ex=" + ex);
  22. }
  23. }
  24. public static Object read (String name) throws Exception {
  25. Object obj;
  26. File file = new File(name);
  27. file.deleteOnExit();
  28. ObjectInputStream in = null;
  29. try {
  30. in = new ObjectInputStream(new FileInputStream(file));
  31. obj = in.readObject();
  32. System.out.println("? Util.read() obj=" + obj);
  33. }
  34. finally {
  35. if (in != null)
  36. in.close();
  37. }
  38. return obj;
  39. }
  40. public static void write (String name, Object obj) throws IOException {
  41. File file = new File(name);
  42. // File file = File.createTempFile(name,null);
  43. ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(file));
  44. out.writeObject(obj);
  45. out.close();
  46. System.out.println("? Util.write() suid=" + ObjectStreamClass.lookup(obj.getClass()));
  47. }
  48. public static void main (String[] args) throws Exception {
  49. String command = (args.length > 0)? args[0] : DEFAULT_COMMAND;
  50. String name = (args.length > 1)? args[1] : DEFAULT_NAME;
  51. if (command.equals("-read")) {
  52. try {
  53. read(name);
  54. }
  55. finally {
  56. new File(name).delete();
  57. }
  58. }
  59. else if (command.equals("-fail")) {
  60. fail(name);
  61. }
  62. // if (args.length > 0) {
  63. // }
  64. // else {
  65. // System.out.println("Usage: Util -fail | -read [name]");
  66. // }
  67. }
  68. }