Repository: wicket
Updated Branches:
  refs/heads/wicket-7.x c1906e684 -> 3798d0fc3


WICKET-6241 CheckingObjectOutputStream should track the original instance, 
before writeReplace()


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/3798d0fc
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/3798d0fc
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/3798d0fc

Branch: refs/heads/wicket-7.x
Commit: 3798d0fc3f42c7d2b8b3e8f691d59cf2f4fb0c05
Parents: c1906e6
Author: Martin Tzvetanov Grigorov <[email protected]>
Authored: Fri Sep 9 22:20:07 2016 +0200
Committer: Martin Tzvetanov Grigorov <[email protected]>
Committed: Fri Sep 9 22:20:07 2016 +0200

----------------------------------------------------------------------
 .../checker/CheckingObjectOutputStream.java     | 21 +++++---------------
 1 file changed, 5 insertions(+), 16 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/3798d0fc/wicket-core/src/main/java/org/apache/wicket/core/util/objects/checker/CheckingObjectOutputStream.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/core/util/objects/checker/CheckingObjectOutputStream.java
 
b/wicket-core/src/main/java/org/apache/wicket/core/util/objects/checker/CheckingObjectOutputStream.java
index 6eef7d9..4978c0e 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/core/util/objects/checker/CheckingObjectOutputStream.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/core/util/objects/checker/CheckingObjectOutputStream.java
@@ -343,11 +343,7 @@ public class CheckingObjectOutputStream extends 
ObjectOutputStream
 
        private void internalCheck(Object obj)
        {
-               if (obj == null)
-               {
-                       return;
-               }
-
+               final Object original = obj;
                Class<?> cls = obj.getClass();
                nameStack.add(simpleName);
                traceStack.add(new TraceSlot(obj, fieldDescription));
@@ -390,7 +386,7 @@ public class CheckingObjectOutputStream extends 
ObjectOutputStream
                }
                else if (cls.isArray())
                {
-                       checked.put(obj, null);
+                       checked.put(original, null);
                        Class<?> ccl = cls.getComponentType();
                        if (!(ccl.isPrimitive()))
                        {
@@ -448,22 +444,15 @@ public class CheckingObjectOutputStream extends 
ObjectOutputStream
                        {
                                try
                                {
-                                       writeObjectMethod = 
cls.getDeclaredMethod("writeObject",
-                                                       new Class[] { 
java.io.ObjectOutputStream.class });
+                                       writeObjectMethod = 
cls.getDeclaredMethod("writeObject", java.io.ObjectOutputStream.class);
                                }
-                               catch (SecurityException e)
+                               catch (SecurityException | 
NoSuchMethodException e)
                                {
                                        // we can't access / set accessible to 
true
                                        writeObjectMethodMissing.add(cls);
                                }
-                               catch (NoSuchMethodException e)
-                               {
-                                       // cls doesn't have that method
-                                       writeObjectMethodMissing.add(cls);
-                               }
                        }
 
-                       final Object original = obj;
                        if (writeObjectMethod != null)
                        {
                                class InterceptingObjectOutputStream extends 
ObjectOutputStream
@@ -537,7 +526,7 @@ public class CheckingObjectOutputStream extends 
ObjectOutputStream
                                        {
                                                throw new RuntimeException(e);
                                        }
-                                       checked.put(obj, null);
+                                       checked.put(original, null);
                                        checkFields(obj, slotDesc);
                                }
                        }

Reply via email to