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/07/05 21:27:03 UTC
svn commit: r1357819 - in /shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/ test/java/org/apache/shindig/gadgets/
Author: rbaxter85
Date: Thu Jul 5 19:27:02 2012
New Revision: 1357819
URL: http://svn.apache.org/viewvc?rev=1357819&view=rev
Log:
SHINDIG-1814
Committed For Erik Bi
Unserializable cache keys
Modified:
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/AbstractSpecFactory.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactory.java
shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultMessageBundleFactory.java
shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactoryTest.java
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/AbstractSpecFactory.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/AbstractSpecFactory.java?rev=1357819&r1=1357818&r2=1357819&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/AbstractSpecFactory.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/AbstractSpecFactory.java Thu Jul 5 19:27:02 2012
@@ -46,7 +46,7 @@ public abstract class AbstractSpecFactor
private final Class<T> clazz;
private final ExecutorService executor;
private final RequestPipeline pipeline;
- final SoftExpiringCache<Uri, Object> cache;
+ final SoftExpiringCache<String, Object> cache;
private final long refresh;
/**
@@ -57,11 +57,11 @@ public abstract class AbstractSpecFactor
* @param refresh the frequency at which to update specs, independent of cache expiration policy
*/
public AbstractSpecFactory(Class<T> clazz, ExecutorService executor, RequestPipeline pipeline,
- Cache<Uri, Object> cache, long refresh) {
+ Cache<String, Object> cache, long refresh) {
this.clazz = clazz;
this.executor = executor;
this.pipeline = pipeline;
- this.cache = new SoftExpiringCache<Uri, Object>(cache);
+ this.cache = new SoftExpiringCache<String, Object>(cache);
this.refresh = refresh;
}
@@ -75,14 +75,14 @@ public abstract class AbstractSpecFactor
protected T getSpec(Query query) throws GadgetException {
Object obj = null;
if (!query.ignoreCache) {
- SoftExpiringCache.CachedObject<Object> cached = cache.getElement(query.specUri);
+ SoftExpiringCache.CachedObject<Object> cached = cache.getElement(query.specUri.toString());
if (cached != null) {
obj = cached.obj;
if (cached.isExpired) {
// We write to the cache to avoid any race conditions with multiple writers.
// This causes a double write, but that's better than a write per thread or synchronizing
// this block.
- cache.addElement(query.specUri, obj, refresh);
+ cache.addElement(query.specUri.toString(), obj, refresh);
executor.execute(new SpecUpdater(query, obj));
}
}
@@ -105,7 +105,7 @@ public abstract class AbstractSpecFactor
obj = e;
}
if (!bypassCache) {
- cache.addElement(query.specUri, obj, refresh);
+ cache.addElement(query.specUri.toString(), obj, refresh);
}
}
@@ -215,7 +215,7 @@ public abstract class AbstractSpecFactor
public void run() {
try {
T newSpec = fetchFromNetwork(query);
- cache.addElement(query.specUri, newSpec, refresh);
+ cache.addElement(query.specUri.toString(), newSpec, refresh);
} catch (SpecRetrievalFailedException se) {
if (LOG.isLoggable(Level.INFO)) {
LOG.logp(Level.INFO, classname, "SpecUpdater", MessageKeys.UPDATE_SPEC_FAILURE_APPLY_NEG_CACHE, new Object[] {query.specUri});
@@ -225,12 +225,12 @@ public abstract class AbstractSpecFactor
if (LOG.isLoggable(Level.INFO)) {
LOG.logp(Level.INFO, classname, "SpecUpdater", MessageKeys.UPDATE_SPEC_FAILURE_USE_CACHE_VERSION, new Object[] {query.specUri});
}
- cache.addElement(query.specUri, old, refresh);
+ cache.addElement(query.specUri.toString(), old, refresh);
} else {
if (LOG.isLoggable(Level.INFO)) {
LOG.logp(Level.INFO, classname, "SpecUpdater", MessageKeys.UPDATE_SPEC_FAILURE_APPLY_NEG_CACHE, new Object[] {query.specUri});
}
- cache.addElement(query.specUri, e, refresh);
+ cache.addElement(query.specUri.toString(), e, refresh);
}
}
}
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactory.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactory.java?rev=1357819&r1=1357818&r2=1357819&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactory.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactory.java Thu Jul 5 19:27:02 2012
@@ -52,7 +52,7 @@ public class DefaultGadgetSpecFactory ex
super(GadgetSpec.class, executor, pipeline, makeCache(cacheProvider), refresh);
}
- private static Cache<Uri, Object> makeCache(CacheProvider cacheProvider) {
+ private static Cache<String, Object> makeCache(CacheProvider cacheProvider) {
return cacheProvider.createCache(CACHE_NAME);
}
Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultMessageBundleFactory.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultMessageBundleFactory.java?rev=1357819&r1=1357818&r2=1357819&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultMessageBundleFactory.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/DefaultMessageBundleFactory.java Thu Jul 5 19:27:02 2012
@@ -50,7 +50,7 @@ public class DefaultMessageBundleFactory
super(MessageBundle.class, executor, pipeline, makeCache(cacheProvider), refresh);
}
- private static Cache<Uri, Object> makeCache(CacheProvider cacheProvider) {
+ private static Cache<String, Object> makeCache(CacheProvider cacheProvider) {
return cacheProvider.createCache(CACHE_NAME);
}
Modified: shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactoryTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactoryTest.java?rev=1357819&r1=1357818&r2=1357819&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactoryTest.java (original)
+++ shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/DefaultGadgetSpecFactoryTest.java Thu Jul 5 19:27:02 2012
@@ -188,7 +188,7 @@ public class DefaultGadgetSpecFactoryTes
replay(pipeline);
specFactory.cache.addElement(
- SPEC_URL, new GadgetSpec(SPEC_URL, LOCAL_SPEC_XML), -1);
+ SPEC_URL.toString(), new GadgetSpec(SPEC_URL, LOCAL_SPEC_XML), -1);
GadgetSpec spec = specFactory.getGadgetSpec(createContext(SPEC_URL, false));
@@ -232,8 +232,8 @@ public class DefaultGadgetSpecFactoryTes
specFactory.getGadgetSpec(createContext(SPEC_URL, true));
- SoftExpiringCache.CachedObject<Object> inCache = specFactory.cache.getElement(SPEC_URL);
- specFactory.cache.addElement(SPEC_URL, inCache.obj, -1);
+ SoftExpiringCache.CachedObject<Object> inCache = specFactory.cache.getElement(SPEC_URL.toString());
+ specFactory.cache.addElement(SPEC_URL.toString(), inCache.obj, -1);
GadgetSpec spec = specFactory.getGadgetSpec(createContext(SPEC_URL, false));
@@ -255,8 +255,8 @@ public class DefaultGadgetSpecFactoryTes
specFactory.getGadgetSpec(createContext(SPEC_URL, true));
- SoftExpiringCache.CachedObject<Object> inCache = specFactory.cache.getElement(SPEC_URL);
- specFactory.cache.addElement(SPEC_URL, inCache.obj, -1);
+ SoftExpiringCache.CachedObject<Object> inCache = specFactory.cache.getElement(SPEC_URL.toString());
+ specFactory.cache.addElement(SPEC_URL.toString(), inCache.obj, -1);
GadgetSpec spec = specFactory.getGadgetSpec(createContext(SPEC_URL, false));
@@ -349,7 +349,7 @@ public class DefaultGadgetSpecFactoryTes
@Test(expected = SpecParserException.class)
public void negativeCachingEnforced() throws Exception {
- specFactory.cache.addElement(SPEC_URL, new SpecParserException("broken"), 1000);
+ specFactory.cache.addElement(SPEC_URL.toString(), new SpecParserException("broken"), 1000);
specFactory.getGadgetSpec(createContext(SPEC_URL, false));
}