Author: ppoddar
Date: Wed Dec 21 17:06:11 2011
New Revision: 1221807
URL: http://svn.apache.org/viewvc?rev=1221807&view=rev
Log:
OPENJPA-2098: Manage context stack in a fail-safe way
Modified:
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaQueryImpl.java
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/RootImpl.java
Modified:
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaQueryImpl.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaQueryImpl.java?rev=1221807&r1=1221806&r2=1221807&view=diff
==============================================================================
---
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaQueryImpl.java
(original)
+++
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/CriteriaQueryImpl.java
Wed Dec 21 17:06:11 2011
@@ -461,7 +461,7 @@ class CriteriaQueryImpl<T> implements Op
* Gets the current context.
*/
Context ctx() {
- return _contexts.peek();
+ return _contexts == null || _contexts.isEmpty() ? null :
_contexts.peek();
}
//
Modified:
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/RootImpl.java
URL:
http://svn.apache.org/viewvc/openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/RootImpl.java?rev=1221807&r1=1221806&r2=1221807&view=diff
==============================================================================
---
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/RootImpl.java
(original)
+++
openjpa/trunk/openjpa-persistence/src/main/java/org/apache/openjpa/persistence/criteria/RootImpl.java
Wed Dec 21 17:06:11 2011
@@ -73,7 +73,7 @@ class RootImpl<X> extends FromImpl<X,X>
Path var = null;
Value val = null;
String alias = c.getAlias(this);
- if (!alias.equalsIgnoreCase(c.ctx().schemaAlias)
+ if (c.ctx() != null && !alias.equalsIgnoreCase(c.ctx().schemaAlias)
&& (val = c.getRegisteredRootVariable(this)) != null) {
// this is cross join
var = factory.newPath(val);