Read.java revision 2362
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab/*
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab * Copyright (c) 2001, Oracle and/or its affiliates. All rights reserved.
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab *
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab * This code is free software; you can redistribute it and/or modify it
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab * under the terms of the GNU General Public License version 2 only, as
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab * published by the Free Software Foundation.
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab *
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab * This code is distributed in the hope that it will be useful, but WITHOUT
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab * version 2 for more details (a copy is included in the LICENSE file that
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab * accompanied this code).
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab *
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab * You should have received a copy of the GNU General Public License version
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab * 2 along with this work; if not, write to the Free Software Foundation,
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab *
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab * or visit www.oracle.com if you need additional information or have any
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab * questions.
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab */
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab/*
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab * @bug 4482471
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab * @summary Verify that even if an incoming ObjectStreamClass is not resolvable
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab * to a local class, the ObjectStreamClass object itself is still
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab * deserializable (without incurring a ClassNotFoundException).
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab */
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87abimport java.io.*;
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87abpublic class Read {
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab public static void main(String[] args) throws Exception {
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab ObjectInputStream oin =
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab new ObjectInputStream(new FileInputStream("tmp.ser"));
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab oin.readObject();
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab oin.readObject();
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab try {
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab oin.readObject();
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab throw new Error("read of Foo instance succeeded");
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab } catch (ClassNotFoundException ex) {
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab }
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab try {
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab oin.readObject();
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab throw new Error("indirect read of Foo instance succeeded");
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab } catch (ClassNotFoundException ex) {
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab }
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab }
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab}
c6c9aed4d309e3d11be652b85e3bf8bb72f20c87ab