You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by li...@apache.org on 2010/07/02 02:50:04 UTC

svn commit: r959822 - /shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/

Author: lindner
Date: Fri Jul  2 00:50:03 2010
New Revision: 959822

URL: http://svn.apache.org/viewvc?rev=959822&view=rev
Log:
SHINDIG-1374 | Patch from Jan Luehe | findbugs fixes - servlets

Modified:
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/GadgetRenderingServlet.java
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HtmlAccelServlet.java
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/MakeRequestServlet.java
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/OAuthCallbackServlet.java
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ProxyServlet.java
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/RpcServlet.java

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java?rev=959822&r1=959821&r2=959822&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ConcatProxyServlet.java Fri Jul  2 00:50:03 2010
@@ -49,6 +49,8 @@ import java.util.logging.Level;
 import java.util.logging.Logger;
 import java.util.regex.Pattern;
 
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
@@ -60,6 +62,8 @@ import javax.servlet.http.HttpServletRes
  */
 public class ConcatProxyServlet extends InjectedServlet {
 
+  private static final long serialVersionUID = -4390212150673709895L;
+
   public static final String JSON_PARAM = Param.JSON.getKey();
   private static final Pattern JSON_PARAM_PATTERN = Pattern.compile("^\\w*$");
   
@@ -70,11 +74,12 @@ public class ConcatProxyServlet extends 
   private static final Logger LOG 
       = Logger.getLogger(ConcatProxyServlet.class.getName());
   
-  private RequestPipeline requestPipeline;
-  private ConcatUriManager concatUriManager;
-  private ResponseRewriterRegistry contentRewriterRegistry;
+  private transient RequestPipeline requestPipeline;
+  private transient ConcatUriManager concatUriManager;
+  private transient ResponseRewriterRegistry contentRewriterRegistry;
+  private transient boolean initialized;
 
-  private Executor executor = new Executor() {
+  private transient Executor executor = new Executor() {
     public void execute(Runnable r) {
       // Sequential version of 'execute' by default.
       r.run();
@@ -83,26 +88,44 @@ public class ConcatProxyServlet extends 
 
   @Inject
   public void setRequestPipeline(RequestPipeline requestPipeline) {
+    if (initialized) {
+      throw new IllegalStateException("Servlet already initialized");
+    }
     this.requestPipeline = requestPipeline;
   }
   
   @Inject
   public void setConcatUriManager(ConcatUriManager concatUriManager) {
+    if (initialized) {
+      throw new IllegalStateException("Servlet already initialized");
+    }
     this.concatUriManager = concatUriManager;
   }
 
   @Inject
   public void setContentRewriterRegistry(ResponseRewriterRegistry contentRewriterRegistry) {
+    if (initialized) {
+      throw new IllegalStateException("Servlet already initialized");
+    }
     this.contentRewriterRegistry = contentRewriterRegistry;
   }
   
   @Inject
   public void setExecutor(@Named("shindig.concat.executor") Executor executor) {
+    if (initialized) {
+      throw new IllegalStateException("Servlet already initialized");
+    }
     // Executor is independently named to allow separate configuration of
     // concat fetch parallelism and other Shindig job execution.
     this.executor = executor;
   }
 
+  @Override
+  public void init(ServletConfig config) throws ServletException {
+    super.init(config);
+    initialized = true;
+  }
+
   @SuppressWarnings("boxing")
   @Override
   protected void doGet(HttpServletRequest request, HttpServletResponse response)

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=959822&r1=959821&r2=959822&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 Jul  2 00:50:03 2010
@@ -35,6 +35,8 @@ import org.apache.commons.lang.StringUti
 import java.io.IOException;
 import java.util.logging.Logger;
 
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -42,23 +44,39 @@ import javax.servlet.http.HttpServletRes
  * Servlet for rendering Gadgets.
  */
 public class GadgetRenderingServlet extends InjectedServlet {
+
+  private static final long serialVersionUID = -5634040113214794888L;
+
   static final int DEFAULT_CACHE_TTL = 60 * 5;
 
   private static final Logger LOG = Logger.getLogger(GadgetRenderingServlet.class.getName());
 
-  private Renderer renderer;
-  private IframeUriManager iframeUriManager;
+  private transient Renderer renderer;
+  private transient IframeUriManager iframeUriManager;
+  private transient boolean initialized;
 
   @Inject
   public void setRenderer(Renderer renderer) {
+    if (initialized) {
+      throw new IllegalStateException("Servlet already initialized");
+    }
     this.renderer = renderer;
   }
   
   @Inject
   public void setIframeUriManager(IframeUriManager iframeUriManager) {
+    if (initialized) {
+      throw new IllegalStateException("Servlet already initialized");
+    }
     this.iframeUriManager = iframeUriManager;
   }
 
+  @Override
+  public void init(ServletConfig config) throws ServletException {
+    super.init(config);
+    initialized = true;
+  }
+
   private void render(HttpServletRequest req, HttpServletResponse resp, UriStatus urlstatus)
       throws IOException {
     if (req.getHeader(HttpRequest.DOS_PREVENTION_HEADER) != null) {

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HtmlAccelServlet.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HtmlAccelServlet.java?rev=959822&r1=959821&r2=959822&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HtmlAccelServlet.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HtmlAccelServlet.java Fri Jul  2 00:50:03 2010
@@ -26,6 +26,8 @@ import java.io.IOException;
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -35,19 +37,32 @@ import javax.servlet.http.HttpServletRes
  */
 public class HtmlAccelServlet extends InjectedServlet {
 
-  private AccelHandler accelHandler;
-  private static Logger logger = Logger.getLogger(
+  private static final long serialVersionUID = -424353123863813052L;
+
+  private static final Logger logger = Logger.getLogger(
       HtmlAccelServlet.class.getName());
 
   public static final String ACCEL_GADGET_PARAM_NAME = "accelGadget";
   public static final String ACCEL_GADGET_PARAM_VALUE = "true";
 
+  private transient AccelHandler accelHandler;
+  private transient boolean initialized;
+
   @Inject
   public void setHandler(AccelHandler accelHandler) {
+    if (initialized) {
+      throw new IllegalStateException("Servlet already initialized");
+    }
     this.accelHandler = accelHandler;
   }
 
   @Override
+  public void init(ServletConfig config) throws ServletException {
+    super.init(config);
+    initialized = true;
+  }
+
+  @Override
   protected void doGet(HttpServletRequest request, HttpServletResponse response)
       throws IOException {
     if (logger.isLoggable(Level.FINE)) {

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java?rev=959822&r1=959821&r2=959822&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/JsServlet.java Fri Jul  2 00:50:03 2010
@@ -44,6 +44,8 @@ import java.util.Map;
 import java.util.Set;
 import java.util.regex.Pattern;
 
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -52,6 +54,9 @@ import javax.servlet.http.HttpServletRes
  * Used by type=URL gadgets in loading JavaScript resources.
  */
 public class JsServlet extends InjectedServlet {
+  
+  private static final long serialVersionUID = 6255917470412008175L;
+
   static final String ONLOAD_JS_TPL = "(function() {" +
       "var nm='%s';" +
       "if (typeof window[nm]==='function') {" +
@@ -60,31 +65,51 @@ public class JsServlet extends InjectedS
       "})();";
   private static final Pattern ONLOAD_FN_PATTERN = Pattern.compile("[a-zA-Z0-9_]+");
 
-  private FeatureRegistry registry;
+  private transient FeatureRegistry registry;
+  private transient JsUriManager jsUriManager;
+  private transient ContainerConfig containerConfig;
+  private transient Map<String, ConfigContributor> configContributors;
+  private transient boolean initialized;
+
   @Inject
   public void setRegistry(FeatureRegistry registry) {
+    if (initialized) {
+      throw new IllegalStateException("Servlet already initialized");
+    }
     this.registry = registry;
   }
   
-  private JsUriManager jsUriManager;
   @Inject
   public void setUrlGenerator(JsUriManager jsUriManager) {
+    if (initialized) {
+      throw new IllegalStateException("Servlet already initialized");
+    }
     this.jsUriManager = jsUriManager;
   }
 
-  private ContainerConfig containerConfig;
   @Inject
   public void setContainerConfig(ContainerConfig containerConfig) {
+    if (initialized) {
+      throw new IllegalStateException("Servlet already initialized");
+    }
     this.containerConfig = containerConfig;
   }
 
-  private Map<String, ConfigContributor> configContributors;
   @Inject
   public void setConfigContributors(Map<String, ConfigContributor> configContributors) {
+    if (initialized) {
+      throw new IllegalStateException("Servlet already initialized");
+    }
     this.configContributors = configContributors;
   }
 
   @Override
+  public void init(ServletConfig config) throws ServletException {
+    super.init(config);
+    initialized = true;
+  }
+
+  @Override
   protected void doGet(HttpServletRequest req, HttpServletResponse resp)
       throws IOException {
     // If an If-Modified-Since header is ever provided, we always say

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/MakeRequestServlet.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/MakeRequestServlet.java?rev=959822&r1=959821&r2=959822&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/MakeRequestServlet.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/MakeRequestServlet.java Fri Jul  2 00:50:03 2010
@@ -22,6 +22,8 @@ import org.apache.shindig.common.servlet
 
 import java.io.IOException;
 
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -36,14 +38,27 @@ import com.google.inject.Inject;
  * makeRequest and open proxy calls.
  */
 public class MakeRequestServlet extends InjectedServlet {
-  private MakeRequestHandler makeRequestHandler;
+
+  private static final long serialVersionUID = -8298705081500283786L;
+  
+  private transient MakeRequestHandler makeRequestHandler;
+  private transient boolean initialized;
 
   @Inject
   public void setMakeRequestHandler(MakeRequestHandler makeRequestHandler) {
+    if (initialized) {
+      throw new IllegalStateException("Servlet already initialized");
+    }
     this.makeRequestHandler = makeRequestHandler;
   }
 
   @Override
+  public void init(ServletConfig config) throws ServletException {
+    super.init(config);
+    initialized = true;
+  }
+
+  @Override
   protected void doGet(HttpServletRequest request, HttpServletResponse response)
       throws IOException {
     makeRequestHandler.fetch(request, response);

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/OAuthCallbackServlet.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/OAuthCallbackServlet.java?rev=959822&r1=959821&r2=959822&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/OAuthCallbackServlet.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/OAuthCallbackServlet.java Fri Jul  2 00:50:03 2010
@@ -32,6 +32,8 @@ import java.io.IOException;
 import java.util.List;
 import java.util.Map;
 
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -50,10 +52,10 @@ import javax.servlet.http.HttpServletRes
  */
 public class OAuthCallbackServlet extends InjectedServlet {
 
-  public static final String CALLBACK_STATE_PARAM = "cs";
+  private static final long serialVersionUID = 7126255229334669172L;
   
+  public static final String CALLBACK_STATE_PARAM = "cs";
   public static final String REAL_DOMAIN_PARAM = "d";
-  
   private static final int ONE_HOUR_IN_SECONDS = 3600;
   
   // This bit of magic passes the entire callback URL into the opening gadget for later use.
@@ -78,15 +80,25 @@ public class OAuthCallbackServlet extend
     "</body>\n" +
     "</html>\n";
 
-  private BlobCrypter stateCrypter;
+  private transient BlobCrypter stateCrypter;
+  private transient boolean initialized;
   
   @Inject
   public void setStateCrypter(
       @Named(OAuthFetcherConfig.OAUTH_STATE_CRYPTER) BlobCrypter stateCrypter) {
+    if (initialized) {
+      throw new IllegalStateException("Servlet already initialized");
+    }
     this.stateCrypter = stateCrypter;
   }
 
   @Override
+  public void init(ServletConfig config) throws ServletException {
+    super.init(config);
+    initialized = true;
+  }
+
+  @Override
   protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
     OAuthCallbackState callbackState = new OAuthCallbackState(stateCrypter,
         req.getParameter(CALLBACK_STATE_PARAM));

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ProxyServlet.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ProxyServlet.java?rev=959822&r1=959821&r2=959822&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ProxyServlet.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/ProxyServlet.java Fri Jul  2 00:50:03 2010
@@ -22,6 +22,8 @@ import org.apache.shindig.common.servlet
 
 import java.io.IOException;
 
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -32,14 +34,27 @@ import com.google.inject.Inject;
  * gadgets.io.getProxyUrl).
  */
 public class ProxyServlet extends InjectedServlet {
-  private ProxyHandler proxyHandler;
+
+  private static final long serialVersionUID = 9085050443492307723L;
+  
+  private transient ProxyHandler proxyHandler;
+  private transient boolean initialized;
 
   @Inject
   public void setProxyHandler(ProxyHandler proxyHandler) {
+    if (initialized) {
+      throw new IllegalStateException("Servlet already initialized");
+    }
     this.proxyHandler = proxyHandler;
   }
 
   @Override
+  public void init(ServletConfig config) throws ServletException {
+    super.init(config);
+    initialized = true;
+  }
+
+  @Override
   protected void doGet(HttpServletRequest request, HttpServletResponse response)
       throws IOException {
     proxyHandler.fetch(request, response);

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/RpcServlet.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/RpcServlet.java?rev=959822&r1=959821&r2=959822&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/RpcServlet.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/RpcServlet.java Fri Jul  2 00:50:03 2010
@@ -26,6 +26,8 @@ import org.json.JSONObject;
 
 import com.google.inject.Inject;
 
+import javax.servlet.ServletConfig;
+import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
@@ -39,19 +41,32 @@ import java.util.logging.Logger;
  * Handles RPC metadata requests.
  */
 public class RpcServlet extends InjectedServlet {
+  
+  private static final long serialVersionUID = 1382573217773582182L;
+  
   static final String GET_REQUEST_REQ_PARAM = "req";
   static final String GET_REQUEST_CALLBACK_PARAM = "callback";
 
   private static final Logger LOG = Logger.getLogger("org.apache.shindig.gadgets");
 
-  private JsonRpcHandler jsonHandler;
+  private transient JsonRpcHandler jsonHandler;
+  private transient boolean initialized;
 
   @Inject
   public void setJsonRpcHandler(JsonRpcHandler jsonHandler) {
+    if (initialized) {
+      throw new IllegalStateException("Servlet already initialized");
+    }
     this.jsonHandler = jsonHandler;
   }
 
   @Override
+  public void init(ServletConfig config) throws ServletException {
+    super.init(config);
+    initialized = true;
+  }
+
+  @Override
   protected void doGet(HttpServletRequest request, HttpServletResponse response)
       throws IOException {
     String reqValue;