Author: knopp
Date: Mon Mar 30 21:06:47 2009
New Revision: 760173
URL: http://svn.apache.org/viewvc?rev=760173&view=rev
Log:
Issue: WICKET-1967
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/io/IObjectStreamFactory.java
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/lang/Objects.java
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/io/IObjectStreamFactory.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/io/IObjectStreamFactory.java?rev=760173&r1=760172&r2=760173&view=diff
==============================================================================
---
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/io/IObjectStreamFactory.java
(original)
+++
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/io/IObjectStreamFactory.java
Mon Mar 30 21:06:47 2009
@@ -81,6 +81,8 @@
try
{
// Can the application always
be taken??
+ // Should be if serialization
happened in thread with application set
+ // (WICKET-2195)
Application application =
Application.get();
IApplicationSettings
applicationSettings = application.getApplicationSettings();
IClassResolver classResolver =
applicationSettings.getClassResolver();
Modified:
wicket/trunk/wicket/src/main/java/org/apache/wicket/util/lang/Objects.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/util/lang/Objects.java?rev=760173&r1=760172&r2=760173&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/util/lang/Objects.java
(original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/util/lang/Objects.java
Mon Mar 30 21:06:47 2009
@@ -392,13 +392,28 @@
{
final ByteArrayInputStream in = new
ByteArrayInputStream(data);
ObjectInputStream ois = null;
+ boolean unsetApplication = false;
try
{
ois =
objectStreamFactory.newObjectInputStream(in);
+ String applicationName =
(String)ois.readObject();
+ if (applicationName != null &&
!Application.exists())
+ {
+ Application app =
Application.get(applicationName);
+ if (app != null)
+ {
+ Application.set(app);
+ unsetApplication = true;
+ }
+ }
return ois.readObject();
}
finally
{
+ if (unsetApplication)
+ {
+ Application.unset();
+ }
if (ois != null)
{
ois.close();
@@ -1094,6 +1109,14 @@
try
{
oos =
objectStreamFactory.newObjectOutputStream(out);
+ if (Application.exists())
+ {
+
oos.writeObject(Application.get().getApplicationKey());
+ }
+ else
+ {
+ oos.writeObject(null);
+ }
oos.writeObject(object);
}
finally