You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openjpa.apache.org by pp...@apache.org on 2010/03/16 20:10:49 UTC
svn commit: r923940 - in /openjpa/trunk/openjpa-jdbc/src/main:
java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java
resources/org/apache/openjpa/jdbc/kernel/localizer.properties
Author: ppoddar
Date: Tue Mar 16 19:10:49 2010
New Revision: 923940
URL: http://svn.apache.org/viewvc?rev=923940&view=rev
Log:
Better diagnostic messages on why a query can not be cached
Modified:
openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java
openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/kernel/localizer.properties
Modified: openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java?rev=923940&r1=923939&r2=923940&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/PreparedQueryImpl.java Tue Mar 16 19:10:49 2010
@@ -170,13 +170,13 @@ public class PreparedQueryImpl implement
if (selector == null || selector.hasMultipleSelects()
|| ((selector instanceof Union)
&& (((Union)selector).getSelects().length != 1)))
- return new PreparedQueryCacheImpl.StrongExclusion(_id, _loc.get("exclude-multi-select").getMessage());
+ return new PreparedQueryCacheImpl.StrongExclusion(_id, _loc.get("exclude-multi-select", _id).getMessage());
select = extractImplementation(selector);
if (select == null)
- return new PreparedQueryCacheImpl.StrongExclusion(_id, _loc.get("exclude-no-select").getMessage());
+ return new PreparedQueryCacheImpl.StrongExclusion(_id, _loc.get("exclude-no-select", _id).getMessage());
SQLBuffer buffer = selector.getSQL();
if (buffer == null)
- return new PreparedQueryCacheImpl.StrongExclusion(_id, _loc.get("exclude-no-sql").getMessage());;
+ return new PreparedQueryCacheImpl.StrongExclusion(_id, _loc.get("exclude-no-sql", _id).getMessage());;
setTargetQuery(buffer.getSQL());
setParameters(buffer.getParameters());
setUserParameterPositions(buffer.getUserParameters());
@@ -194,18 +194,18 @@ public class PreparedQueryImpl implement
*/
private Object[] extractSelectExecutor(Object result) {
if (result instanceof ResultList == false)
- return new Object[]{null, _loc.get("exclude-not-result")};
+ return new Object[]{null, _loc.get("exclude-not-result", _id)};
Object userObject = ((ResultList<?>)result).getUserObject();
if (userObject == null || !userObject.getClass().isArray() || ((Object[])userObject).length != 2)
- return new Object[]{null, _loc.get("exclude-no-user-object")};
+ return new Object[]{null, _loc.get("exclude-no-user-object", _id)};
Object provider = ((Object[])userObject)[0];
Object executor = ((Object[])userObject)[1];
if (executor instanceof StoreQuery.Executor == false)
- return new Object[]{null, _loc.get("exclude-not-executor")};
+ return new Object[]{null, _loc.get("exclude-not-executor", _id)};
_exps = ((StoreQuery.Executor)executor).getQueryExpressions();
for (int i = 0; i < _exps.length; i++) {
if (isUsingExternalizedParameter(_exps[i])) {
- return new Object[]{null, _loc.get("exclude-externalized-param", provider.getClass().getName())};
+ return new Object[]{null, _loc.get("exclude-externalized-param", _id)};
}
}
if (_exps[0].projections.length == 0) {
@@ -225,7 +225,7 @@ public class PreparedQueryImpl implement
if (provider instanceof SelectResultObjectProvider) {
return new Object[]{((SelectResultObjectProvider)provider).getSelect(), null};
}
- return new Object[]{null, _loc.get("exclude-not-select-rop", provider.getClass().getName())};
+ return new Object[]{null, _loc.get("exclude-not-select-rop", _id, provider.getClass().getName())};
}
private SelectImpl extractImplementation(SelectExecutor selector) {
Modified: openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/kernel/localizer.properties
URL: http://svn.apache.org/viewvc/openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/kernel/localizer.properties?rev=923940&r1=923939&r2=923940&view=diff
==============================================================================
--- openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/kernel/localizer.properties (original)
+++ openjpa/trunk/openjpa-jdbc/src/main/resources/org/apache/openjpa/jdbc/kernel/localizer.properties Tue Mar 16 19:10:49 2010
@@ -149,17 +149,21 @@ bad-lrs-size: Invalid LRS size. Valid va
"unknown"(0), "last"(1) or "query"(2). Specified value: {0}.
bad-join-syntax: Invalid join syntax. Valid values are \
"sql92"(0), "tradition"(1) or "database"(2). Specified value: {0}.
-exclude-multi-select: This query generates multiple SQL statements. \
- A query can be cached only when it corresponds to a single SQL statement.
-exclude-not-result: This query returns a single value rather than \
- a list. A query that returns single value can not be cached.
-exclude-no-user-object: Post-execution data can not be extracted \
- from this query.
-exclude-no-sql: Target SQL statement can not be extracted \
- from this query.
-exclude-no-select: Internal select instance can not be extracted \
- from this query.
-exclude-not-select-rop: The query result is not obtained by executing \
- a select statement. This can happen if the query was evaluated in-memory. \
- The result was provided by an instance of {0}.
-exclude-not-executor: This query was not executed on a data store.
+exclude-multi-select: Query "{0}" is not cached because it generates multiple \
+ SQL statements. A query can be cached only when it corresponds to a single \
+ SQL statement.
+exclude-not-result: Query "{0}" is not cached because it returns a single value \
+ rather than a list. A query that returns single value can not be cached.
+exclude-no-user-object: Query "{0}" is not cached because post-execution data \
+ can not be extracted from this query.
+exclude-no-sql: Query "{0}" is not cached because SQL statement can not be \
+ extracted from this query.
+exclude-no-select: Query "{0}" is not cached because the internal select \
+ can not be extracted from this query.
+exclude-not-select-rop: Query "{0}" is not cached because its result \
+ is not obtained by executing a select statement. This can happen \
+ if the query was evaluated in-memory. The result was provided by {1}.
+exclude-not-executor: Query "{0}" is not cached because it was not executed on a \
+ data store.
+exclude-externalized-param: Query "{0}" is not cached because some parameterized \
+ field values are externalized.
\ No newline at end of file