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/06/24 15:48:35 UTC

svn commit: r957548 - in /shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets: features/ http/ servlet/ uri/

Author: lindner
Date: Thu Jun 24 13:48:34 2010
New Revision: 957548

URL: http://svn.apache.org/viewvc?rev=957548&view=rev
Log:
SHINDIG-1374 | Patch from Jan Luehe | Fixes for findbugs issues in shindig/java/gadgets

Modified:
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/features/FeatureRegistry.java
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponseBuilder.java
    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/HttpGadgetContext.java
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ConcatUriManager.java
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultConcatUriManager.java
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ProxyUriBase.java

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/features/FeatureRegistry.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/features/FeatureRegistry.java?rev=957548&r1=957547&r2=957548&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/features/FeatureRegistry.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/features/FeatureRegistry.java Thu Jun 24 13:48:34 2010
@@ -592,7 +592,7 @@ public class FeatureRegistry {
     private final Collection<String> needed;
     private final RenderingContext rCtx;
     private final String container;
-    private final Boolean useUnsupported;
+    private final boolean useUnsupported;
     
     private FeatureCacheKey(Collection<String> needed, GadgetContext ctx, boolean useUnsupported) {
       this.needed = needed;
@@ -603,6 +603,9 @@ public class FeatureRegistry {
     
     @Override
     public boolean equals(Object other) {
+      if (other == this) {
+        return true;
+      }
       if (!(other instanceof FeatureCacheKey)) {
         return false;
       }

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponseBuilder.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponseBuilder.java?rev=957548&r1=957547&r2=957548&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponseBuilder.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponseBuilder.java Thu Jun 24 13:48:34 2010
@@ -103,17 +103,18 @@ public class HttpResponseBuilder extends
     Collection<String> values = headers.get("Content-Type");
     if (!values.isEmpty()) {
       String contentType = values.iterator().next();
-      StringBuilder newContentType = new StringBuilder("");
+      StringBuilder newContentTypeBuilder = new StringBuilder("");
       // Remove previously set charset:
       String[] parts = StringUtils.split(contentType, ';');
       for (String part : parts) {
         if (!part.contains("charset=")) {
-          newContentType.append(part).append("; ");
+          newContentTypeBuilder.append(part).append("; ");
         }
       }
-      newContentType.append("charset=").append(charset.name());
+      newContentTypeBuilder.append("charset=").append(charset.name());
       values.clear();
-      values.add(newContentType.toString());
+      String newContentType = newContentTypeBuilder.toString();
+      values.add(newContentType);
       if (!(values.size() == 1 && !contentType.equals(newContentType))) {
         incrementNumChanges();
       }

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=957548&r1=957547&r2=957548&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 Thu Jun 24 13:48:34 2010
@@ -169,57 +169,67 @@ public class ConcatProxyServlet extends 
 
     List<Pair<Uri, FutureTask<RequestContext>>> futureTasks =
         new ArrayList<Pair<Uri, FutureTask<RequestContext>>>();
-    
-    for (Uri resourceUri : concatUri.getBatch()) {
-      try {
-        HttpRequest httpReq = concatUri.makeHttpRequest(resourceUri);
-        FutureTask<RequestContext> httpFetcher =
-            new FutureTask<RequestContext>(new HttpFetchCallable(httpReq));
-        futureTasks.add(Pairs.newPair(httpReq.getUri(), httpFetcher));
-        executor.execute(httpFetcher);
-      } catch (GadgetException ge) {
-        if (cos.outputError(resourceUri, ge)) {
-          // True returned from outputError indicates a terminal error.
-          return false;
+
+    try {
+      for (Uri resourceUri : concatUri.getBatch()) {
+        try {
+          HttpRequest httpReq = concatUri.makeHttpRequest(resourceUri);
+          FutureTask<RequestContext> httpFetcher =
+                  new FutureTask<RequestContext>(new HttpFetchCallable(httpReq));
+          futureTasks.add(Pairs.newPair(httpReq.getUri(), httpFetcher));
+          executor.execute(httpFetcher);
+        } catch (GadgetException ge) {
+          if (cos.outputError(resourceUri, ge)) {
+            // True returned from outputError indicates a terminal error.
+            return false;
+          }
         }
       }
-    }
-  
-    for (Pair<Uri, FutureTask<RequestContext>> futureTask : futureTasks) {
-      RequestContext requestCxt = null;
-      try {
+
+      for (Pair<Uri, FutureTask<RequestContext>> futureTask : futureTasks) {
+        RequestContext requestCxt = null;
         try {
-          requestCxt = futureTask.two.get();
-        } catch (InterruptedException ie) {
-          throw new GadgetException(GadgetException.Code.INTERNAL_SERVER_ERROR, ie);
-        } catch (ExecutionException ee) {
-          throw new GadgetException(GadgetException.Code.INTERNAL_SERVER_ERROR, ee);
-        }
-        if (requestCxt.getGadgetException() != null) {
-          throw requestCxt.getGadgetException();
-        }
-        HttpResponse httpResp = requestCxt.getHttpResp();
-        if (httpResp != null) {
-          if (contentRewriterRegistry != null) {
-            try {
-              httpResp = contentRewriterRegistry.rewriteHttpResponse(requestCxt.getHttpReq(), 
-                  httpResp);
-            } catch (RewritingException e) {
-              throw new GadgetException(GadgetException.Code.INTERNAL_SERVER_ERROR, e,
-                  e.getHttpStatusCode());
+          try {
+            requestCxt = futureTask.two.get();
+          } catch (InterruptedException ie) {
+            throw new GadgetException(GadgetException.Code.INTERNAL_SERVER_ERROR, ie);
+          } catch (ExecutionException ee) {
+            throw new GadgetException(GadgetException.Code.INTERNAL_SERVER_ERROR, ee);
+          }
+          if (requestCxt.getGadgetException() != null) {
+            throw requestCxt.getGadgetException();
+          }
+          HttpResponse httpResp = requestCxt.getHttpResp();
+          if (httpResp != null) {
+            if (contentRewriterRegistry != null) {
+              try {
+                httpResp = contentRewriterRegistry.rewriteHttpResponse(requestCxt.getHttpReq(),
+                        httpResp);
+              } catch (RewritingException e) {
+                throw new GadgetException(GadgetException.Code.INTERNAL_SERVER_ERROR, e,
+                        e.getHttpStatusCode());
+              }
             }
+            cos.output(futureTask.one, httpResp);
+          } else {
+            return false;
           }
-          cos.output(futureTask.one, httpResp);
-        } else {
-          return false;
-        }        
-      } catch (GadgetException ge) {
-        if (cos.outputError(futureTask.one, ge)) {
-          return false;
-        }    
+        } catch (GadgetException ge) {
+          if (cos.outputError(futureTask.one, ge)) {
+            return false;
+          }
+        }
+      }
+    } finally {
+      if (cos != null) {
+        try {
+          cos.close();
+        } catch (IOException ioe) {
+          // Ignore
+        }
       }
     }
-    cos.close();    
+
     return true;
   }
 
@@ -346,7 +356,7 @@ public class ConcatProxyServlet extends 
   }
   
   // Encapsulates the response context of a single resource fetch.
-  private class RequestContext {
+  private static class RequestContext {
     private HttpRequest httpReq;
     private HttpResponse httpResp;
     private GadgetException gadgetException;

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HttpGadgetContext.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HttpGadgetContext.java?rev=957548&r1=957547&r2=957548&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HttpGadgetContext.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/HttpGadgetContext.java Thu Jun 24 13:48:34 2010
@@ -195,7 +195,7 @@ public class HttpGadgetContext extends G
   private static Boolean getDebug(HttpServletRequest req) {
     String debug = req.getParameter("debug");
     if (debug == null) {
-      return null;
+      return Boolean.FALSE;
     } else if ("0".equals(debug)) {
       return Boolean.FALSE;
     }
@@ -209,7 +209,7 @@ public class HttpGadgetContext extends G
   private static Boolean getIgnoreCache(HttpServletRequest req) {
     String ignoreCache = req.getParameter("nocache");
     if (ignoreCache == null) {
-      return null;
+      return Boolean.FALSE;
     } else if ("0".equals(ignoreCache)) {
       return Boolean.FALSE;
     }

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ConcatUriManager.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ConcatUriManager.java?rev=957548&r1=957547&r2=957548&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ConcatUriManager.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ConcatUriManager.java Thu Jun 24 13:48:34 2010
@@ -139,6 +139,9 @@ public interface ConcatUriManager {
 
     @Override
     public boolean equals(Object obj) {
+      if (obj == this) {
+        return true;
+      }
       if (!(obj instanceof ConcatUri)) {
         return false; 
       }
@@ -148,7 +151,12 @@ public interface ConcatUriManager {
           && Objects.equal(this.splitParam, objUri.splitParam)
           && Objects.equal(this.type, objUri.type));
     }
-    
+
+    @Override
+    public int hashCode() {
+      return Objects.hashCode(super.hashCode(), batch, splitParam, type);
+    }
+
     public List<Uri> getBatch() {
       return batch;
     }

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultConcatUriManager.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultConcatUriManager.java?rev=957548&r1=957547&r2=957548&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultConcatUriManager.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/DefaultConcatUriManager.java Thu Jun 24 13:48:34 2010
@@ -116,7 +116,7 @@ public class DefaultConcatUriManager imp
       uriBuilder.addQueryParameter(Param.JSON.getKey(), splitParam);
     }
 
-    Integer i = new Integer(START_INDEX);
+    Integer i = Integer.valueOf(START_INDEX);
     for (Uri resource : resourceUris) {
       uriBuilder.addQueryParameter(i.toString(), resource.toString());
       i++;
@@ -170,7 +170,7 @@ public class DefaultConcatUriManager imp
     }
     String splitParam = type == Type.JS ? uri.getQueryParameter(Param.JSON.getKey()) : null;
     
-    Integer i = new Integer(START_INDEX);
+    Integer i = Integer.valueOf(START_INDEX);
     String uriStr = null;
     while ((uriStr = uri.getQueryParameter(i.toString())) != null) {
       try {

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ProxyUriBase.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ProxyUriBase.java?rev=957548&r1=957547&r2=957548&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ProxyUriBase.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/ProxyUriBase.java Thu Jun 24 13:48:34 2010
@@ -88,6 +88,9 @@ public class ProxyUriBase {
 
   @Override
   public boolean equals(Object obj) {
+    if (obj == this) {
+      return true;
+    }
     if (!(obj instanceof ProxyUriBase)) {
       return false; 
     }
@@ -102,6 +105,12 @@ public class ProxyUriBase {
         && this.sanitizeContent == objUri.sanitizeContent);
   }
 
+  @Override
+  public int hashCode() {
+    return Objects.hashCode(status, refresh, container, gadget, rewriteMimeType,
+            noCache, debug, sanitizeContent);
+  }
+
   public ProxyUriBase setRewriteMimeType(String type) {
     this.rewriteMimeType = type;
     return this;