You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2006/10/12 00:46:01 UTC
svn commit: r463020 -
/incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/cache/OSQueryCache.java
Author: aadamchik
Date: Wed Oct 11 15:46:00 2006
New Revision: 463020
URL: http://svn.apache.org/viewvc?view=rev&rev=463020
Log:
CAY-685 OSQueryCache concurrency improvements
fixing a problem that I introduced 30 min ago - query cache group wasn't stored by OSQueryCache
Modified:
incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/cache/OSQueryCache.java
Modified: incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/cache/OSQueryCache.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/cache/OSQueryCache.java?view=diff&rev=463020&r1=463019&r2=463020
==============================================================================
--- incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/cache/OSQueryCache.java (original)
+++ incubator/cayenne/main/trunk/core/cayenne-jdk1.4/src/main/java/org/apache/cayenne/cache/OSQueryCache.java Wed Oct 11 15:46:00 2006
@@ -26,6 +26,7 @@
import java.util.Map;
import java.util.Properties;
+import org.apache.cayenne.CayenneRuntimeException;
import org.apache.cayenne.query.QueryMetadata;
import com.opensymphony.oscache.base.CacheEntry;
@@ -283,9 +284,24 @@
boolean updated = false;
try {
Object result = factory.createObject();
- osCache.putInCache(key, result);
+
+ if (!(result instanceof List)) {
+ if (result == null) {
+ throw new CayenneRuntimeException("Null on cache rebuilding: "
+ + metadata.getCacheKey());
+ }
+ else {
+ throw new CayenneRuntimeException(
+ "Invalid query result, expected List, got "
+ + result.getClass().getName());
+ }
+ }
+
+ List list = (List) result;
+
+ put(metadata, list);
updated = true;
- return (List) result;
+ return list;
}
finally {
if (!updated) {