You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by mg...@apache.org on 2014/07/14 15:52:07 UTC
[1/2] git commit: remove obsolete comment about page maps
Repository: wicket
Updated Branches:
refs/heads/wicket-6.x adc3ae40e -> e8e184b28
remove obsolete comment about page maps
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/bea11510
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/bea11510
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/bea11510
Branch: refs/heads/wicket-6.x
Commit: bea11510645192d94b6b2c226e220b72a1364d15
Parents: adc3ae4
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Mon Jul 14 10:52:08 2014 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Mon Jul 14 10:52:08 2014 +0300
----------------------------------------------------------------------
.../wicket/core/request/mapper/AbstractBookmarkableMapper.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/bea11510/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/AbstractBookmarkableMapper.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/AbstractBookmarkableMapper.java b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/AbstractBookmarkableMapper.java
index bbe2e1c..a9433c7 100644
--- a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/AbstractBookmarkableMapper.java
+++ b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/AbstractBookmarkableMapper.java
@@ -300,7 +300,7 @@ public abstract class AbstractBookmarkableMapper extends AbstractComponentMapper
if (info == null)
{
- // if there are is no page instance information (only page map name - optionally)
+ // if there are is no page instance information
// then this is a simple bookmarkable URL
return processBookmarkable(pageClass, pageParameters);
}
[2/2] git commit: WICKET-5642 CheckingOutputObjectStream should
filter duplicates by identity, not by equality
Posted by mg...@apache.org.
WICKET-5642 CheckingOutputObjectStream should filter duplicates by identity, not by equality
Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/e8e184b2
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/e8e184b2
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/e8e184b2
Branch: refs/heads/wicket-6.x
Commit: e8e184b289a595b96d1090a6e94a97c72aa946af
Parents: bea1151
Author: Martin Tzvetanov Grigorov <mg...@apache.org>
Authored: Mon Jul 14 16:51:38 2014 +0300
Committer: Martin Tzvetanov Grigorov <mg...@apache.org>
Committed: Mon Jul 14 16:51:38 2014 +0300
----------------------------------------------------------------------
.../checker/CheckingObjectOutputStream.java | 30 +-------
.../wicket/util/io/SerializableCheckerTest.java | 75 ++++++++++++++------
2 files changed, 54 insertions(+), 51 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/wicket/blob/e8e184b2/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 bf56d41..4e034fc 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
@@ -34,7 +34,6 @@ import java.util.Iterator;
import java.util.LinkedList;
import java.util.Map;
import java.util.Set;
-import java.util.Stack;
import org.apache.wicket.Component;
import org.apache.wicket.WicketRuntimeException;
@@ -311,8 +310,6 @@ public class CheckingObjectOutputStream extends ObjectOutputStream
/** current full field description. */
private String fieldDescription;
- private final Stack<Object> stack = new Stack<Object>();
-
/**
* Constructor.
*
@@ -336,34 +333,12 @@ public class CheckingObjectOutputStream extends ObjectOutputStream
return;
}
- try
- {
- if (stack.contains(obj))
- {
- return;
- }
- }
- catch (RuntimeException e)
+ if (checked.containsKey(obj))
{
- log.warn(String.format("Wasn't possible to check the object '%s' possible due an problematic " +
- "implementation of equals method", obj.getClass()), e);
- /*
- * Can't check if this obj were in stack, giving up because we don't want to throw an
- * invaluable exception to user. The main goal of this checker is to find non
- * serializable data
- */
return;
}
- stack.push(obj);
- try
- {
- internalCheck(obj);
- }
- finally
- {
- stack.pop();
- }
+ internalCheck(obj);
}
private void internalCheck(Object obj)
@@ -737,5 +712,4 @@ public class CheckingObjectOutputStream extends ObjectOutputStream
// just null-ify the declared members
reset();
}
-
}
http://git-wip-us.apache.org/repos/asf/wicket/blob/e8e184b2/wicket-core/src/test/java/org/apache/wicket/util/io/SerializableCheckerTest.java
----------------------------------------------------------------------
diff --git a/wicket-core/src/test/java/org/apache/wicket/util/io/SerializableCheckerTest.java b/wicket-core/src/test/java/org/apache/wicket/util/io/SerializableCheckerTest.java
index 879dc75..e096781 100644
--- a/wicket-core/src/test/java/org/apache/wicket/util/io/SerializableCheckerTest.java
+++ b/wicket-core/src/test/java/org/apache/wicket/util/io/SerializableCheckerTest.java
@@ -16,17 +16,20 @@
*/
package org.apache.wicket.util.io;
+import static org.hamcrest.Matchers.is;
+
import java.io.IOException;
import java.io.NotSerializableException;
import java.io.Serializable;
+import java.util.Map;
+import java.util.Set;
-import org.apache.log4j.Level;
-import org.apache.log4j.LogManager;
-import org.apache.log4j.Logger;
import org.apache.wicket.core.util.io.SerializableChecker;
+import org.apache.wicket.core.util.objects.checker.AbstractObjectChecker;
import org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream;
-import org.apache.wicket.util.Log4jEventHistory;
+import org.apache.wicket.core.util.objects.checker.IObjectChecker;
import org.apache.wicket.util.value.ValueMap;
+import org.hamcrest.Matchers;
import org.junit.Assert;
import org.junit.Test;
@@ -49,30 +52,49 @@ public class SerializableCheckerTest extends Assert
}
/**
- * Asserting an meaningful message get logged on console when serializable checker is testing
- * problematic {@link Object#equals(Object)} method implementations.
- *
- * @see <a href="https://issues.apache.org/jira/browse/WICKET-3354">WICKET-3354</a>
+ * Asserts that {@link org.apache.wicket.core.util.objects.checker.CheckingObjectOutputStream}
+ * will check an instance just once, despite it occurs more than once in the object tree
+ *
+ * https://issues.apache.org/jira/browse/WICKET-5642
+ *
* @throws IOException
*/
@Test
- public void runtimeExceptionTolerance() throws IOException
+ public void checkObjectsByIdentity() throws IOException
{
- Logger logger = LogManager.getLogger(CheckingObjectOutputStream.class);
- logger.setLevel(Level.WARN);
- Log4jEventHistory logHistory = new Log4jEventHistory();
- logger.addAppender(logHistory);
- SerializableChecker serializableChecker = new SerializableChecker(new ByteArrayOutputStream(),
- new NotSerializableException());
- try
+ CountingChecker countingChecker = new CountingChecker();
+ CheckingObjectOutputStream outputStream = new CheckingObjectOutputStream(new ByteArrayOutputStream(), countingChecker);
+ final IdentityTestType type = new IdentityTestType();
+ type.member = new SerializableTypeWithMember(type);
+ outputStream.writeObject(type);
+
+ assertThat(countingChecker.getCount(), is(2));
+ }
+
+ private static class CountingChecker extends AbstractObjectChecker
+ {
+ private int count = 0;
+
+ @Override
+ public Result check(Object object)
{
- serializableChecker.writeObject(new TestType1());
- String expectedMessage = "Wasn't possible to check the object 'class org.apache.wicket.util.io.SerializableCheckerTest$ProblematicType' possible due an problematic implementation of equals method";
- assertTrue(logHistory.contains(Level.WARN, expectedMessage));
+ count++;
+ return super.check(object);
}
- catch (TestException notMeaningfulException)
+
+ private int getCount()
{
- fail("Should have just logged on console, the checker is after another problem");
+ return count;
+ }
+ }
+
+ private static class SerializableTypeWithMember extends SerializableType
+ {
+ private final IdentityTestType member;
+
+ private SerializableTypeWithMember(IdentityTestType member)
+ {
+ this.member = member;
}
}
@@ -96,10 +118,17 @@ public class SerializableCheckerTest extends Assert
assertTrue(exceptionMessage.contains(NonSerializableType.class.getName()));
}
- private static class TestType1 implements Serializable
+ private static class IdentityTestType implements Serializable
{
private static final long serialVersionUID = 1L;
- ProblematicType problematicType = new ProblematicType();
+
+ private SerializableType member;
+
+ @Override
+ public boolean equals(Object obj)
+ {
+ return false;
+ }
}
private static class TestType2 implements Serializable