OpenJDK / portola / portola
changeset 7972:1d0e051daa24
6544224: Remove the need of sun.reflect.misc
Reviewed-by: alanb
author | lancea |
---|---|
date | Mon, 10 Jan 2011 14:43:50 -0500 |
parents | ca5a32210b1b |
children | dffe8439eb20 |
files | jdk/src/share/classes/javax/sql/rowset/serial/SerialJavaObject.java |
diffstat | 1 files changed, 9 insertions(+), 28 deletions(-) [+] |
line wrap: on
line diff
--- a/jdk/src/share/classes/javax/sql/rowset/serial/SerialJavaObject.java Mon Jan 10 09:32:32 2011 +0000 +++ b/jdk/src/share/classes/javax/sql/rowset/serial/SerialJavaObject.java Mon Jan 10 14:43:50 2011 -0500 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2003, 2006, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2003, 2011, Oracle and/or its affiliates. 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 @@ -25,9 +25,7 @@ package javax.sql.rowset.serial; -import java.sql.*; import java.io.*; -import java.util.Map; import java.lang.reflect.*; import javax.sql.rowset.RowSetWarning; @@ -51,7 +49,7 @@ /** * Placeholder for object to be serialized. */ - private Object obj; + private final Object obj; /** @@ -64,8 +62,7 @@ * <p> * * @param obj the Java <code>Object</code> to be serialized - * @throws SerialException if the object is found - * to be unserializable + * @throws SerialException if the object is found not to be serializable */ public SerialJavaObject(Object obj) throws SerialException { @@ -74,16 +71,11 @@ // get Class. Object instance should always be available - Class c = obj.getClass(); + Class<?> c = obj.getClass(); // determine if object implements Serializable i/f - boolean serializableImpl = false; - Class[] theIf = c.getInterfaces(); - for (int i = 0; i < theIf.length; i++) { - String ifName = theIf[i].getName(); - if (ifName == "java.io.Serializable") { - serializableImpl = true; - } + if (!(obj instanceof java.io.Serializable)) { + setWarning(new RowSetWarning("Warning, the object passed to the constructor does not implement Serializable")); } // can only determine public fields (obviously). If @@ -93,21 +85,13 @@ boolean anyStaticFields = false; fields = c.getFields(); - //fields = new Object[field.length]; for (int i = 0; i < fields.length; i++ ) { if ( fields[i].getModifiers() == Modifier.STATIC ) { anyStaticFields = true; } - //fields[i] = field[i].get(obj); } - try { - if (!(serializableImpl)) { - throw new RowSetWarning("Test"); - } - } catch (RowSetWarning w) { - setWarning(w); - } + if (anyStaticFields) { throw new SerialException("Located static fields in " + @@ -139,11 +123,8 @@ */ public Field[] getFields() throws SerialException { if (fields != null) { - Class c = this.obj.getClass(); - //the following has to be commented before mustang integration - //return c.getFields(); - //the following has to be uncommented before mustang integration - return sun.reflect.misc.FieldUtil.getFields(c); + Class<?> c = this.obj.getClass(); + return c.getFields(); } else { throw new SerialException("SerialJavaObject does not contain" + " a serialized object instance");