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