blob: 97badcc34acd40a10ba66043a932026a0d412ac5 [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001/*
Kelly O'Hairfe008ae2010-05-25 15:58:33 -07002 * Copyright (c) 2004, Oracle and/or its affiliates. All rights reserved.
J. Duke319a3b92007-12-01 00:00:00 +00003 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
Kelly O'Hairfe008ae2010-05-25 15:58:33 -070019 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
20 * or visit www.oracle.com if you need additional information or have any
21 * questions.
J. Duke319a3b92007-12-01 00:00:00 +000022 */
23
24/*
25 * @test
26 * @bug 5014447
27 * @summary Test deserialization of UUID
Joe Darcy86c109e2015-04-29 10:25:53 -070028 * @key randomness
J. Duke319a3b92007-12-01 00:00:00 +000029 */
30
31import java.io.*;
32import java.util.*;
33
34/**
35 * This class tests to see if UUID can be serialized and
36 * deserialized properly. This originally failed because
37 * the transient fields which were computed on demand are
38 * not set back to the uninitialized value upon reconstitition.
39 */
40public class Serial {
41 public static void main(String[] args) throws Exception {
42 UUID a = UUID.randomUUID();
43 ByteArrayOutputStream baos = new ByteArrayOutputStream();
44 ObjectOutputStream oos = new ObjectOutputStream(baos);
45 oos.writeObject(a);
46 ByteArrayInputStream bais = new ByteArrayInputStream(baos.toByteArray());
47 ObjectInputStream ois = new ObjectInputStream(bais);
48 UUID b = (UUID)ois.readObject();
49 if (!a.equals(b))
50 throw new RuntimeException("UUIDs not equal");
51 oos.close();
52 ois.close();
53 }
54}