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


Reply via email to