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/01/11 19:48:37 UTC
svn commit: r898000 - in /incubator/shindig/trunk/java:
common/src/main/java/org/apache/shindig/common/crypto/
common/src/main/java/org/apache/shindig/common/util/
common/src/main/java/org/apache/shindig/config/
gadgets/src/main/java/org/apache/shindig...
Author: lindner
Date: Mon Jan 11 18:48:36 2010
New Revision: 898000
URL: http://svn.apache.org/viewvc?rev=898000&view=rev
Log:
SHINDIG-1256 | Patch from Jon Weygandt | Fixes for several small findbugs issues
Modified:
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/crypto/BasicBlobCrypter.java
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/util/ResourceLoader.java
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfig.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetBlacklist.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/Gadget.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/GadgetHtmlParser.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/RpcServlet.java
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateLibraryFactory.java
Modified: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/crypto/BasicBlobCrypter.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/crypto/BasicBlobCrypter.java?rev=898000&r1=897999&r2=898000&view=diff
==============================================================================
--- incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/crypto/BasicBlobCrypter.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/crypto/BasicBlobCrypter.java Mon Jan 11 18:48:36 2010
@@ -75,10 +75,10 @@
* @throws IOException if the file can't be read.
*/
public BasicBlobCrypter(File keyfile) throws IOException {
- FileInputStream openFile = null;
+ BufferedReader reader = null;
try {
- openFile = new FileInputStream(keyfile);
- BufferedReader reader = new BufferedReader(
+ FileInputStream openFile = new FileInputStream(keyfile);
+ reader = new BufferedReader(
new InputStreamReader(openFile, CharsetUtil.UTF8));
String line = reader.readLine();
if (line == null) {
@@ -89,8 +89,8 @@
init(keyBytes);
} finally {
try {
- if (openFile != null) {
- openFile.close();
+ if (reader != null) {
+ reader.close();
}
} catch (IOException e) {
// oh well.
@@ -183,7 +183,7 @@
public Map<String, String> unwrap(String in, int maxAgeSec)
throws BlobCrypterException {
try {
- byte[] bin = Base64.decodeBase64(in.getBytes());
+ byte[] bin = Base64.decodeBase64(in.getBytes("UTF-8"));
byte[] hmac = new byte[Crypto.HMAC_SHA1_LEN];
byte[] cipherText = new byte[bin.length-Crypto.HMAC_SHA1_LEN];
System.arraycopy(bin, 0, cipherText, 0, cipherText.length);
Modified: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/util/ResourceLoader.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/util/ResourceLoader.java?rev=898000&r1=897999&r2=898000&view=diff
==============================================================================
--- incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/util/ResourceLoader.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/util/ResourceLoader.java Mon Jan 11 18:48:36 2010
@@ -71,7 +71,12 @@
* @throws IOException
*/
public static String getContent(String resource) throws IOException {
- return IOUtils.toString(openResource(resource), "UTF-8");
+ InputStream is = openResource(resource);
+ try{
+ return IOUtils.toString(is, "UTF-8");
+ } finally {
+ IOUtils.closeQuietly(is);
+ }
}
/**
@@ -80,6 +85,11 @@
* @throws IOException
*/
public static String getContent(File file) throws IOException {
- return IOUtils.toString(new FileInputStream(file), "UTF-8");
+ InputStream is = new FileInputStream(file);
+ try{
+ return IOUtils.toString(is, "UTF-8");
+ } finally {
+ IOUtils.closeQuietly(is);
+ }
}
}
Modified: incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfig.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfig.java?rev=898000&r1=897999&r2=898000&view=diff
==============================================================================
--- incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfig.java (original)
+++ incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/config/JsonContainerConfig.java Mon Jan 11 18:48:36 2010
@@ -325,7 +325,7 @@
all.put(container, contents);
}
} catch (JSONException e) {
-System.out.println("Trouble parsing " + json);
+ LOG.warning("Trouble parsing " + json);
throw new ContainerConfigException("Trouble parsing " + json, e);
}
}
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetBlacklist.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetBlacklist.java?rev=898000&r1=897999&r2=898000&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetBlacklist.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/BasicGadgetBlacklist.java Mon Jan 11 18:48:36 2010
@@ -109,8 +109,13 @@
regexpMatches.add(Pattern.compile(parts[1], Pattern.CASE_INSENSITIVE));
}
}
- } finally {
- in.close();
+ }finally{
+ try{
+ in.close();
+ }catch(IOException e){
+ //ignore
+ }
+
}
}
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/Gadget.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/Gadget.java?rev=898000&r1=897999&r2=898000&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/Gadget.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/Gadget.java Mon Jan 11 18:48:36 2010
@@ -60,7 +60,7 @@
* @param registry The gadget feature registry to use to find dependent
* features.
*/
- public Gadget setGadgetFeatureRegistry(FeatureRegistry registry) {
+ public synchronized Gadget setGadgetFeatureRegistry(FeatureRegistry registry) {
this.featureRegistry = registry;
return this;
}
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java?rev=898000&r1=897999&r2=898000&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/http/HttpResponse.java Mon Jan 11 18:48:36 2010
@@ -142,10 +142,10 @@
// Holds character sets for fast conversion
private static final Map<String, Charset> encodingToCharset = new MapMaker().makeMap();
- private transient String responseString;
- private transient long date;
- private transient Charset encoding;
- private transient Map<String, String> metadata;
+ private String responseString;
+ private long date;
+ private Charset encoding;
+ private Map<String, String> metadata;
private int httpStatusCode;
private Multimap<String, String> headers;
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/GadgetHtmlParser.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/GadgetHtmlParser.java?rev=898000&r1=897999&r2=898000&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/GadgetHtmlParser.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/parse/GadgetHtmlParser.java Mon Jan 11 18:48:36 2010
@@ -21,6 +21,7 @@
import org.apache.shindig.common.cache.CacheProvider;
import org.apache.shindig.common.util.HashUtil;
import org.apache.shindig.gadgets.GadgetException;
+import org.apache.shindig.gadgets.GadgetException.Code;
import org.apache.shindig.gadgets.parse.nekohtml.NekoSimplifiedHtmlParser;
import com.google.common.collect.BiMap;
@@ -94,7 +95,14 @@
}
if (document == null) {
- document = parseDomImpl(source);
+ try {
+ document = parseDomImpl(source);
+ } catch (GadgetException e) {
+ throw e;
+ } catch (Exception e) {
+ // DOMException is a RuntimeException
+ throw new GadgetException(Code.HTML_PARSE_ERROR, e);
+ }
HtmlSerialization.attach(document, serializerProvider.get(), source);
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/RpcServlet.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/RpcServlet.java?rev=898000&r1=897999&r2=898000&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/RpcServlet.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/RpcServlet.java Mon Jan 11 18:48:36 2010
@@ -30,6 +30,7 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
+import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.util.logging.Level;
import java.util.logging.Logger;
@@ -75,7 +76,7 @@
return;
}
- Result result = process(request, response, reqValue.getBytes());
+ Result result = process(request, response, reqValue);
response.getWriter().write(result.isSuccess()
? callbackValue + '(' + result.getOutput() + ')'
: result.getOutput());
@@ -84,10 +85,17 @@
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws IOException {
- ServletInputStream is = request.getInputStream();
- byte[] body = IOUtils.toByteArray(is);
- Result result = process(request, response, body);
- response.getWriter().write(result.getOutput());
+ try{
+ InputStreamReader is = new InputStreamReader(request.getInputStream(),
+ getRequestCharacterEncoding(request));
+ String body = IOUtils.toString(is);
+ Result result = process(request, response, body);
+ response.getWriter().write(result.getOutput());
+ } catch (UnsupportedEncodingException e) {
+ response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
+ logger.log(Level.INFO, e.getMessage(), e);
+ response.getWriter().write("Unsupported input character set");
+ }
}
private String validateParameterValue(HttpServletRequest request, String parameter)
@@ -99,19 +107,14 @@
return result;
}
- private Result process(HttpServletRequest request, HttpServletResponse response, byte[] body) {
+ private Result process(HttpServletRequest request, HttpServletResponse response, String body) {
try {
- String encoding = getRequestCharacterEncoding(request);
- JSONObject req = new JSONObject(new String(body, encoding));
+ JSONObject req = new JSONObject(body);
JSONObject resp = jsonHandler.process(req);
response.setStatus(HttpServletResponse.SC_OK);
response.setContentType("application/json; charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename=rpc.txt");
return new Result(resp.toString(), true);
- } catch (UnsupportedEncodingException e) {
- response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
- logger.log(Level.INFO, e.getMessage(), e);
- return new Result("Unsupported input character set", false);
} catch (JSONException e) {
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
return new Result("Malformed JSON request.", false);
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateLibraryFactory.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateLibraryFactory.java?rev=898000&r1=897999&r2=898000&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateLibraryFactory.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/templates/TemplateLibraryFactory.java Mon Jan 11 18:48:36 2010
@@ -31,6 +31,8 @@
import org.apache.shindig.gadgets.http.RequestPipeline;
import org.w3c.dom.Element;
+import java.io.UnsupportedEncodingException;
+
import com.google.inject.Inject;
/**
@@ -69,8 +71,12 @@
String key = null;
Element element = null;
if (!context.getIgnoreCache()) {
- key = HashUtil.rawChecksum(content.getBytes());
- element = parsedXmlCache.getElement(key);
+ try {
+ key = HashUtil.rawChecksum(content.getBytes("UTF-8"));
+ element = parsedXmlCache.getElement(key);
+ } catch (UnsupportedEncodingException e) {
+ // this won't happen, but if it does, cache won't be used.
+ }
}
if (element == null) {