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


Reply via email to