You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by hl...@apache.org on 2005/10/13 00:35:10 UTC
svn commit: r315065 - in /jakarta/tapestry/trunk/framework/src:
java/org/apache/tapestry/record/ java/org/apache/tapestry/util/io/
test/org/apache/tapestry/record/
Author: hlship
Date: Wed Oct 12 15:35:04 2005
New Revision: 315065
URL: http://svn.apache.org/viewcvs?rev=315065&view=rev
Log:
TAPESTRY-650: ClassNotFoundException thrown when deserializing an object from a client persistent property
Modified:
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/record/ClientPropertyPersistenceStrategy.java
jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/util/io/ResolvingObjectInputStream.java
jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/record/TestClientPropertyPersistenceStrategy.java
Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/record/ClientPropertyPersistenceStrategy.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/record/ClientPropertyPersistenceStrategy.java?rev=315065&r1=315064&r2=315065&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/record/ClientPropertyPersistenceStrategy.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/record/ClientPropertyPersistenceStrategy.java Wed Oct 12 15:35:04 2005
@@ -44,23 +44,12 @@
*/
private final Map _data = new HashMap();
- private final PersistentPropertyDataEncoder _encoder;
+ private PersistentPropertyDataEncoder _encoder;
private WebRequest _request;
private ClientPropertyPersistenceScope _scope;
- public ClientPropertyPersistenceStrategy()
- {
- this(new PersistentPropertyDataEncoderImpl());
- }
-
- // Alternate constructor used for testing
- ClientPropertyPersistenceStrategy(PersistentPropertyDataEncoder encoder)
- {
- _encoder = encoder;
- }
-
/**
* Initializer for this service, invoked every time a service instance is created. This
* initializer pulls out of the request and query parameters whose prefix is "client:" and
@@ -118,7 +107,8 @@
_data.remove(pageName);
}
- public void addParametersForPersistentProperties(ServiceEncoding encoding, IRequestCycle cycle, boolean post)
+ public void addParametersForPersistentProperties(ServiceEncoding encoding, IRequestCycle cycle,
+ boolean post)
{
Defense.notNull(encoding, "encoding");
Defense.notNull(cycle, "cycle");
@@ -154,5 +144,10 @@
public void setScope(ClientPropertyPersistenceScope scope)
{
_scope = scope;
+ }
+
+ public void setEncoder(PersistentPropertyDataEncoder encoder)
+ {
+ _encoder = encoder;
}
}
Modified: jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/util/io/ResolvingObjectInputStream.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/util/io/ResolvingObjectInputStream.java?rev=315065&r1=315064&r2=315065&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/util/io/ResolvingObjectInputStream.java (original)
+++ jakarta/tapestry/trunk/framework/src/java/org/apache/tapestry/util/io/ResolvingObjectInputStream.java Wed Oct 12 15:35:04 2005
@@ -20,6 +20,7 @@
import java.io.ObjectStreamClass;
import org.apache.hivemind.ClassResolver;
+import org.apache.hivemind.util.Defense;
/**
* Specialized subclass of {@link java.io.ObjectInputStream}that knows how to resolve classes with
@@ -37,6 +38,8 @@
public ResolvingObjectInputStream(ClassResolver resolver, InputStream input) throws IOException
{
super(input);
+
+ Defense.notNull(resolver, "resolver");
_resolver = resolver;
}
Modified: jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/record/TestClientPropertyPersistenceStrategy.java
URL: http://svn.apache.org/viewcvs/jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/record/TestClientPropertyPersistenceStrategy.java?rev=315065&r1=315064&r2=315065&view=diff
==============================================================================
--- jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/record/TestClientPropertyPersistenceStrategy.java (original)
+++ jakarta/tapestry/trunk/framework/src/test/org/apache/tapestry/record/TestClientPropertyPersistenceStrategy.java Wed Oct 12 15:35:04 2005
@@ -67,9 +67,10 @@
replayControls();
- ClientPropertyPersistenceStrategy strategy = new ClientPropertyPersistenceStrategy(encoder);
+ ClientPropertyPersistenceStrategy strategy = new ClientPropertyPersistenceStrategy();
strategy.setRequest(request);
strategy.setScope(scope);
+ strategy.setEncoder(encoder);
strategy.initializeService();
@@ -90,6 +91,7 @@
PropertyChange pc = new PropertyChangeImpl("foo", "bar", "baz");
ClientPropertyPersistenceStrategy strategy = new ClientPropertyPersistenceStrategy();
+ strategy.setEncoder(newEncoder());
strategy.store("MyPage", "foo", "bar", "baz");
@@ -122,6 +124,7 @@
ClientPropertyPersistenceStrategy strategy = new ClientPropertyPersistenceStrategy();
strategy.setRequest(request);
strategy.setScope(new AppClientPropertyPersistenceScope());
+ strategy.setEncoder(newEncoder());
strategy.initializeService();
@@ -130,6 +133,14 @@
verifyControls();
}
+ private PersistentPropertyDataEncoder newEncoder()
+ {
+ PersistentPropertyDataEncoderImpl encoder = new PersistentPropertyDataEncoderImpl();
+ encoder.setClassResolver(getClassResolver());
+
+ return encoder;
+ }
+
public void testPageScope()
{
MockControl requestc = newControl(WebRequest.class);
@@ -172,6 +183,7 @@
ClientPropertyPersistenceStrategy strategy = new ClientPropertyPersistenceStrategy();
strategy.setRequest(request);
strategy.setScope(new PageClientPropertyPersistenceScope());
+ strategy.setEncoder(newEncoder());
strategy.initializeService();
---------------------------------------------------------------------
To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org