You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by rb...@apache.org on 2012/09/18 02:36:31 UTC
svn commit: r1386936 - in /shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/uri/AllJsIframeVersioner.java
test/java/org/apache/shindig/gadgets/uri/AllJsIframeVersionerTest.java
Author: rbaxter85
Date: Tue Sep 18 00:36:31 2012
New Revision: 1386936
URL: http://svn.apache.org/viewvc?rev=1386936&view=rev
Log:
SHINDIG-1867
Committed For Mashall Shi
AllJsIFrameVersioner causes large memory allocation
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/AllJsIframeVersioner.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/AllJsIframeVersionerTest.java
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/AllJsIframeVersioner.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/AllJsIframeVersioner.java?rev=1386936&r1=1386935&r2=1386936&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/AllJsIframeVersioner.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/uri/AllJsIframeVersioner.java Tue Sep 18 00:36:31 2012
@@ -18,6 +18,9 @@
*/
package org.apache.shindig.gadgets.uri;
+import java.nio.charset.Charset;
+import java.security.MessageDigest;
+
import org.apache.shindig.common.uri.Uri;
import org.apache.shindig.common.util.HashUtil;
import org.apache.shindig.gadgets.features.FeatureRegistry;
@@ -47,11 +50,17 @@ public class AllJsIframeVersioner implem
@Inject
public AllJsIframeVersioner(FeatureRegistry registry) {
- StringBuilder jsBuf = new StringBuilder();
+ Charset charset = Charset.defaultCharset();
+ MessageDigest digest = HashUtil.getMessageDigest();
+ digest.reset();
for (FeatureResource resource : registry.getAllFeatures().getResources()) {
- jsBuf.append(resource.getContent()).append(resource.getDebugContent());
+ // Emulate StringBuilder append of content
+ String content = resource.getContent();
+ digest.update((content == null ? "null" : content).getBytes(charset));
+ content = resource.getDebugContent();
+ digest.update((content == null ? "null" : content).getBytes(charset));
}
- allJsChecksum = HashUtil.checksum(jsBuf.toString().getBytes());
+ allJsChecksum = HashUtil.bytesToHex(digest.digest());
}
public String version(Uri gadgetUri, String container) {
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/AllJsIframeVersionerTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/AllJsIframeVersionerTest.java?rev=1386936&r1=1386935&r2=1386936&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/AllJsIframeVersionerTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/uri/AllJsIframeVersionerTest.java Tue Sep 18 00:36:31 2012
@@ -35,6 +35,8 @@ import org.junit.Test;
import com.google.common.collect.Lists;
+import java.nio.charset.Charset;
+import java.security.MessageDigest;
import java.util.List;
public class AllJsIframeVersionerTest {
@@ -49,7 +51,11 @@ public class AllJsIframeVersionerTest {
public void setUp() {
String featureContent = "THE_FEATURE_CONTENT";
String debugContent = "FEATURE_DEBUG_CONTENT";
- featureChecksum = HashUtil.checksum((featureContent + debugContent).getBytes());
+ Charset charset = Charset.defaultCharset();
+ MessageDigest digest = HashUtil.getMessageDigest();
+ digest.update(featureContent.getBytes(charset));
+ digest.update(debugContent.getBytes(charset));
+ featureChecksum = HashUtil.bytesToHex(digest.digest());
FeatureRegistry registry = createMock(FeatureRegistry.class);
FeatureResource resource = new FeatureResource.Simple(featureContent, debugContent, "js");
List<FeatureResource> allResources = Lists.newArrayList(resource);