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) {