You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by bi...@apache.org on 2009/06/20 05:00:18 UTC
svn commit: r786751 -
/commons/proper/math/trunk/src/java/org/apache/commons/math/complex/Complex.java
Author: billbarker
Date: Sat Jun 20 03:00:18 2009
New Revision: 786751
URL: http://svn.apache.org/viewvc?rev=786751&view=rev
Log:
Change Complex to use readResolve instead of introspection
Modified:
commons/proper/math/trunk/src/java/org/apache/commons/math/complex/Complex.java
Modified: commons/proper/math/trunk/src/java/org/apache/commons/math/complex/Complex.java
URL: http://svn.apache.org/viewvc/commons/proper/math/trunk/src/java/org/apache/commons/math/complex/Complex.java?rev=786751&r1=786750&r2=786751&view=diff
==============================================================================
--- commons/proper/math/trunk/src/java/org/apache/commons/math/complex/Complex.java (original)
+++ commons/proper/math/trunk/src/java/org/apache/commons/math/complex/Complex.java Sat Jun 20 03:00:18 2009
@@ -17,8 +17,6 @@
package org.apache.commons.math.complex;
-import java.io.IOException;
-import java.io.ObjectInputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
@@ -973,33 +971,15 @@
}
/**
- * Deserialize a Complex Object.
- * @param ois The stream to deserialize from.
- * @throws IOException If there is an error reading the stream.
- * @throws ClassNotFoundException If this class cannot be found.
- */
- private void readObject(ObjectInputStream ois) throws IOException, ClassNotFoundException {
- ois.defaultReadObject();
-
- try {
- final java.lang.reflect.Field fNaN = getClass().getDeclaredField("isNaN");
- fNaN.setAccessible(true);
- fNaN.set(this, Double.isNaN(real) || Double.isNaN(imaginary));
- final java.lang.reflect.Field fInf = getClass().getDeclaredField("isInfinite");
- fInf.setAccessible(true);
- fInf.set(this, !isNaN && (Double.isInfinite(real) || Double.isInfinite(imaginary)));
- } catch (IllegalAccessException iae) {
- IOException ioe = new IOException();
- ioe.initCause(iae);
- throw ioe;
- } catch (NoSuchFieldException nsfe) {
- IOException ioe = new IOException();
- ioe.initCause(nsfe);
- throw ioe;
- }
-
+ * <p>Resolve the transient fields in a deserialized Complex Object.</p>
+ * <p>Subclasses will need to override {@link #createComplex} to deserialize properly</p>
+ * @return A Complex instance with all fields resolved.
+ * @since 2.0
+ */
+ private final Object readResolve() {
+ return createComplex(real, imaginary);
}
-
+
/** {@inheritDoc} */
public ComplexField getField() {
return ComplexField.getInstance();