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;
}