src/share/classes/javax/lang/model/type/MirroredTypesException.java

Print this page

        

*** 1,7 **** /* ! * Copyright 2005-2006 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this --- 1,7 ---- /* ! * Copyright 2005-2009 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. Sun designates this
*** 23,38 **** * have any questions. */ package javax.lang.model.type; - import java.lang.annotation.Annotation; import java.util.ArrayList; import java.util.List; import java.util.Collections; ! import javax.lang.model.element.Element; /** * Thrown when an application attempts to access a sequence of {@link --- 23,38 ---- * have any questions. */ package javax.lang.model.type; import java.lang.annotation.Annotation; import java.util.ArrayList; import java.util.List; import java.util.Collections; ! import java.io.ObjectInputStream; ! import java.io.IOException; import javax.lang.model.element.Element; /** * Thrown when an application attempts to access a sequence of {@link
*** 47,66 **** */ public class MirroredTypesException extends RuntimeException { private static final long serialVersionUID = 269; ! // Should this be non-final for a custum readObject method? ! private final transient List<? extends TypeMirror> types; // cannot be serialized /** * Constructs a new MirroredTypesException for the specified types. * * @param types the types being accessed */ public MirroredTypesException(List<? extends TypeMirror> types) { ! super("Attempt to access Class objects for TypeMirrors " + types); this.types = Collections.unmodifiableList(types); } /** * Returns the type mirrors corresponding to the types being accessed. --- 47,67 ---- */ public class MirroredTypesException extends RuntimeException { private static final long serialVersionUID = 269; ! private transient List<? extends TypeMirror> types; // cannot be serialized /** * Constructs a new MirroredTypesException for the specified types. * * @param types the types being accessed */ public MirroredTypesException(List<? extends TypeMirror> types) { ! super("Attempt to access Class objects for TypeMirrors " + ! (types = // defensive copy ! new ArrayList<TypeMirror>(types)).toString() ); this.types = Collections.unmodifiableList(types); } /** * Returns the type mirrors corresponding to the types being accessed.
*** 70,75 **** --- 71,85 ---- * @return the type mirrors in construction order, or {@code null} if unavailable */ public List<? extends TypeMirror> getTypeMirrors() { return types; } + + /** + * Explicitly set all transient fields. + */ + private void readObject(ObjectInputStream s) + throws IOException, ClassNotFoundException { + s.defaultReadObject(); + types = null; + } }