Author: chirag
Date: Fri Oct 15 18:22:26 2010
New Revision: 1023057

URL: http://svn.apache.org/viewvc?rev=1023057&view=rev
Log:
Patch by Jan Luehe | Fixes for subclassing related issues | Code Review 
http://codereview.appspot.com/2522041/

Modified:
    
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/InjectedServlet.java
    
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetRenderingServlet.java

Modified: 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/InjectedServlet.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/InjectedServlet.java?rev=1023057&r1=1023056&r2=1023057&view=diff
==============================================================================
--- 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/InjectedServlet.java
 (original)
+++ 
shindig/trunk/java/common/src/main/java/org/apache/shindig/common/servlet/InjectedServlet.java
 Fri Oct 15 18:22:26 2010
@@ -21,6 +21,10 @@ package org.apache.shindig.common.servle
 import com.google.common.base.Preconditions;
 import com.google.inject.Injector;
 
+import java.io.IOException;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+
 import javax.servlet.ServletConfig;
 import javax.servlet.ServletContext;
 import javax.servlet.ServletException;
@@ -58,4 +62,33 @@ public abstract class InjectedServlet ex
   protected void checkInitialized() {
     Preconditions.checkState(!initialized, "Servlet already initialized");
   }
+
+  /**
+   * Writes the state of this InjectedServlet during serialization.
+   *
+   * @param out The stream to which to save the state
+   *
+   * @throws IOException if an error occurs
+   */
+  private void writeObject(ObjectOutputStream out) throws IOException {
+    out.defaultWriteObject();
+  }
+
+  /**
+   * Restores the state of this InjectedServlet during deserialization.
+   *
+   * <p>Upon deserialization, this InjectedServlet will not be functional
+   * until after its init method was called, which will cause all necessary
+   * injection to happen.
+   *
+   * @param in The stream from which to restore the state
+   *
+   * @throws IOException if an error occurs
+   * @throws ClassNotFoundException if a class cannot be found
+   */
+  private void readObject(ObjectInputStream in)
+          throws IOException, ClassNotFoundException {
+    in.defaultReadObject();
+    initialized = false;
+  }
 }

Modified: 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetRenderingServlet.java
URL: 
http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetRenderingServlet.java?rev=1023057&r1=1023056&r2=1023057&view=diff
==============================================================================
--- 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetRenderingServlet.java
 (original)
+++ 
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetRenderingServlet.java
 Fri Oct 15 18:22:26 2010
@@ -50,8 +50,8 @@ public class GadgetRenderingServlet exte
 
   private static final Logger LOG = 
Logger.getLogger(GadgetRenderingServlet.class.getName());
 
-  private transient Renderer renderer;
-  private transient IframeUriManager iframeUriManager;
+  protected transient Renderer renderer;
+  protected transient IframeUriManager iframeUriManager;
 
   @Inject
   public void setRenderer(Renderer renderer) {


Reply via email to