From a137c29891a81509d5c528817ee5e01a5d07d319 Mon Sep 17 00:00:00 2001 From: Lance Andersen Date: Mon, 10 Jan 2011 14:43:50 -0500 Subject: [PATCH] 6544224: Remove the need of sun.reflect.misc Reviewed-by: alanb --- .../sql/rowset/serial/SerialJavaObject.java | 37 +++++-------------- 1 file changed, 9 insertions(+), 28 deletions(-) diff --git a/jdk/src/share/classes/javax/sql/rowset/serial/SerialJavaObject.java b/jdk/src/share/classes/javax/sql/rowset/serial/SerialJavaObject.java index 0a05a01e031..5aa034f6854 100644 --- a/jdk/src/share/classes/javax/sql/rowset/serial/SerialJavaObject.java +++ b/jdk/src/share/classes/javax/sql/rowset/serial/SerialJavaObject.java @@ -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 @@ public class SerialJavaObject implements Serializable, Cloneable { /** * Placeholder for object to be serialized. */ - private Object obj; + private final Object obj; /** @@ -64,8 +62,7 @@ public class SerialJavaObject implements Serializable, Cloneable { *

* * @param obj the Java Object 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 @@ public class SerialJavaObject implements Serializable, Cloneable { // 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,22 +85,14 @@ public class SerialJavaObject implements Serializable, Cloneable { 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 " + "object instance. Cannot serialize"); @@ -139,11 +123,8 @@ public class SerialJavaObject implements Serializable, Cloneable { */ 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");