You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jena.apache.org by rv...@apache.org on 2016/02/10 11:00:53 UTC

[18/50] [abbrv] jena git commit: handle query cache misses with getOrFill and a lambda function

handle query cache misses with getOrFill and a lambda function


Project: http://git-wip-us.apache.org/repos/asf/jena/repo
Commit: http://git-wip-us.apache.org/repos/asf/jena/commit/3570b14b
Tree: http://git-wip-us.apache.org/repos/asf/jena/tree/3570b14b
Diff: http://git-wip-us.apache.org/repos/asf/jena/diff/3570b14b

Branch: refs/heads/JENA-507
Commit: 3570b14bd6913ecfbf268fdeba7781e8dd650dc5
Parents: f91818e
Author: Osma Suominen <os...@helsinki.fi>
Authored: Sat Jan 9 11:05:47 2016 +0200
Committer: Osma Suominen <os...@apache.org>
Committed: Mon Jan 11 09:27:13 2016 +0200

----------------------------------------------------------------------
 .../java/org/apache/jena/query/text/TextQueryPF.java  | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/jena/blob/3570b14b/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
----------------------------------------------------------------------
diff --git a/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java b/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
index 50350eb..9b30605 100644
--- a/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
+++ b/jena-text/src/main/java/org/apache/jena/query/text/TextQueryPF.java
@@ -286,15 +286,15 @@ public class TextQueryPF extends PropertyFunctionBase {
             execCxt.getContext().put(cacheSymbol, queryCache);
         }
 
-        ListMultimap<String,TextHit> results = queryCache.getIfPresent(cacheKey) ;
-        if (results == null) { /* cache miss */
-            List<TextHit> resultList = textIndex.query(property, queryString, limit) ;
-            results = LinkedListMultimap.create();
+        final String queryStr = queryString; // final needed for the lambda function
+        ListMultimap<String,TextHit> results = queryCache.getOrFill(cacheKey, () -> {
+            List<TextHit> resultList = textIndex.query(property, queryStr, limit) ;
+            ListMultimap<String,TextHit> resultMultimap = LinkedListMultimap.create();
             for (TextHit result : resultList) {
-                results.put(result.getNode().getURI(), result);
+                resultMultimap.put(result.getNode().getURI(), result);
             }
-            queryCache.put(cacheKey, results) ;
-        }
+            return resultMultimap;
+        });
         return results;
     }