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) {