diff --git a/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryStatistics.java b/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryStatistics.java index 8a4ce91fe..be0306d6c 100644 --- a/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryStatistics.java +++ b/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/QueryStatistics.java @@ -23,6 +23,7 @@ import java.io.Serializable; import java.util.Date; import java.util.HashMap; import java.util.Map; +import java.util.Set; /** * Records query execution statistics. @@ -38,6 +39,11 @@ import java.util.Map; * */ public interface QueryStatistics extends Serializable { + + /** + * Gets all the identifier keys for the cached queries. + */ + public Set keys(); /** * Record that the given query has been executed. @@ -126,6 +132,10 @@ public interface QueryStatistics extends Serializable { private Map astats = new HashMap(); private Date start = new Date(); private Date since = start; + + public Set keys() { + return stats.keySet(); + } public long getExecutionCount() { return stat[READ]; @@ -205,6 +215,8 @@ public interface QueryStatistics extends Serializable { } public void recordExecution(T query) { + if (query == null) + return; boolean cached = (astats.containsKey(query)); addSample(query, READ); if (cached)