openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mark Struberg <strub...@yahoo.de>
Subject Re: svn commit: r1536793 - in /openjpa/branches/2.3.x: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/ openjpa-kernel/src/main/java/org/apache/openjpa/conf/ openjpa-kernel/src/main/java/org/apache/openjpa/kernel/
Date Tue, 29 Oct 2013 17:50:15 GMT
jody, did you also fix this in trunk?

I'm assuming that all bugs fixed in 2.3.x also work in and got applied to trunk


txs and LieGrue,
strub



----- Original Message -----
> From: "jgrassel@apache.org" <jgrassel@apache.org>
> To: commits@openjpa.apache.org
> Cc: 
> Sent: Tuesday, 29 October 2013, 17:23
> Subject: svn commit: r1536793 - in /openjpa/branches/2.3.x: openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/
openjpa-kernel/src/main/java/org/apache/openjpa/conf/ openjpa-kernel/src/main/java/org/apache/openjpa/kernel/
> 
> Author: jgrassel
> Date: Tue Oct 29 16:23:36 2013
> New Revision: 1536793
> 
> URL: http://svn.apache.org/r1536793
> Log:
> OPENJPA-2414: FinderCache does not consider active Fetch Groups/FetchPlan added 
> Fields
> 
> Modified:
>     
> openjpa/branches/2.3.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/FinderCacheImpl.java
>     
> openjpa/branches/2.3.x/openjpa-kernel/src/main/java/org/apache/openjpa/conf/Compatibility.java
>     
> openjpa/branches/2.3.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DelegatingFetchConfiguration.java
>     
> openjpa/branches/2.3.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/FetchConfiguration.java
>     
> openjpa/branches/2.3.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/FetchConfigurationImpl.java
> 
> Modified: 
> openjpa/branches/2.3.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/FinderCacheImpl.java
> URL: 
> http://svn.apache.org/viewvc/openjpa/branches/2.3.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/FinderCacheImpl.java?rev=1536793&r1=1536792&r2=1536793&view=diff
> ==============================================================================
> --- 
> openjpa/branches/2.3.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/FinderCacheImpl.java

> (original)
> +++ 
> openjpa/branches/2.3.x/openjpa-jdbc/src/main/java/org/apache/openjpa/jdbc/kernel/FinderCacheImpl.java

> Tue Oct 29 16:23:36 2013
> @@ -109,7 +109,7 @@ public class FinderCacheImpl 
>          }
>         
>          // FinderCache only operates with Default Fetch Plans
> -        if (!fetch.isDefaultPUFetchGroupConfigurationOnly()) {
> +        if (!fetch.isFetchConfigurationSQLCacheAdmissible()) {
>              return null;
>          }
>         
> @@ -152,7 +152,7 @@ public class FinderCacheImpl 
>              }
>             
>              // FinderCache only operates with Default Fetch Plans
> -            if (!fetch.isDefaultPUFetchGroupConfigurationOnly()) {
> +            if (!fetch.isFetchConfigurationSQLCacheAdmissible()) {
>                  return null;
>              }          
>             
> 
> Modified: 
> openjpa/branches/2.3.x/openjpa-kernel/src/main/java/org/apache/openjpa/conf/Compatibility.java
> URL: 
> http://svn.apache.org/viewvc/openjpa/branches/2.3.x/openjpa-kernel/src/main/java/org/apache/openjpa/conf/Compatibility.java?rev=1536793&r1=1536792&r2=1536793&view=diff
> ==============================================================================
> --- 
> openjpa/branches/2.3.x/openjpa-kernel/src/main/java/org/apache/openjpa/conf/Compatibility.java

> (original)
> +++ 
> openjpa/branches/2.3.x/openjpa-kernel/src/main/java/org/apache/openjpa/conf/Compatibility.java

> Tue Oct 29 16:23:36 2013
> @@ -77,6 +77,7 @@ public class Compatibility {
>      private boolean _singletonLifecycleEventManager = false;
>      private boolean _filterPCRegistryClasses = false; // OPENJPA-2288
>      private boolean _returnNullOnEmptyAggregateResult = true;   // OPENJPA-1794
> +    private boolean _cacheNonDefaultFetchPlanQueries = false; // OPENJPA-2414
> 
>      /**
>       * Whether to require exact identity value types when creating object
> @@ -763,4 +764,18 @@ public class Compatibility {
>      public void setReturnNullOnAggregateResult(boolean 
> returnNullOnEmptyAggregateResult) {
>          _returnNullOnEmptyAggregateResult = returnNullOnEmptyAggregateResult;
>      }
> +    
> +    /**
> +     * Whether the SQL generated for queries executed with a modified fetch 
> plan are cached.
> +     */
> +    public boolean  getCacheNonDefaultFetchPlanQueries() { 
> +        return _cacheNonDefaultFetchPlanQueries;
> +    }
> +    
> +    /**
> +     * Whether the SQL generated for queries executed with a modified fetch 
> plan are cached.
> +     */
> +    public void setCacheNonDefaultFetchPlanQueries(boolean bool) {
> +        _cacheNonDefaultFetchPlanQueries = bool;
> +    }
> }
> 
> Modified: 
> openjpa/branches/2.3.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DelegatingFetchConfiguration.java
> URL: 
> http://svn.apache.org/viewvc/openjpa/branches/2.3.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DelegatingFetchConfiguration.java?rev=1536793&r1=1536792&r2=1536793&view=diff
> ==============================================================================
> --- 
> openjpa/branches/2.3.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DelegatingFetchConfiguration.java

> (original)
> +++ 
> openjpa/branches/2.3.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/DelegatingFetchConfiguration.java

> Tue Oct 29 16:23:36 2013
> @@ -595,4 +595,12 @@ public class DelegatingFetchConfiguratio
>              throw translate(re);
>          }
>      }
> +    
> +    public boolean isFetchConfigurationSQLCacheAdmissible() {
> +       try {
> +           return _fetch.isFetchConfigurationSQLCacheAdmissible();
> +       } catch (RuntimeException re) {
> +            throw translate(re);
> +       }
> +    }
> }
> 
> Modified: 
> openjpa/branches/2.3.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/FetchConfiguration.java
> URL: 
> http://svn.apache.org/viewvc/openjpa/branches/2.3.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/FetchConfiguration.java?rev=1536793&r1=1536792&r2=1536793&view=diff
> ==============================================================================
> --- 
> openjpa/branches/2.3.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/FetchConfiguration.java

> (original)
> +++ 
> openjpa/branches/2.3.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/FetchConfiguration.java

> Tue Oct 29 16:23:36 2013
> @@ -474,4 +474,9 @@ public interface FetchConfiguration
>       * @since 0.4.1
>       */
>      public FetchConfiguration traverse(FieldMetaData fm);
> +    
> +    /**
> +     * Whether SQL generated by the FetchConfiguration's current 
> configuration should be cached.
> +     */
> +    public boolean isFetchConfigurationSQLCacheAdmissible();
> }
> 
> Modified: 
> openjpa/branches/2.3.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/FetchConfigurationImpl.java
> URL: 
> http://svn.apache.org/viewvc/openjpa/branches/2.3.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/FetchConfigurationImpl.java?rev=1536793&r1=1536792&r2=1536793&view=diff
> ==============================================================================
> --- 
> openjpa/branches/2.3.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/FetchConfigurationImpl.java

> (original)
> +++ 
> openjpa/branches/2.3.x/openjpa-kernel/src/main/java/org/apache/openjpa/kernel/FetchConfigurationImpl.java

> Tue Oct 29 16:23:36 2013
> @@ -148,7 +148,8 @@ public class FetchConfigurationImpl
>          public boolean fetchGroupIsPUDefault = false;
>          public boolean extendedPathLookup = false;
>          public DataCacheRetrieveMode cacheRetrieveMode = 
> DataCacheRetrieveMode.USE;
> -        public DataCacheStoreMode cacheStoreMode = DataCacheStoreMode.USE;   
  
>   
> +        public DataCacheStoreMode cacheStoreMode = DataCacheStoreMode.USE;
> +        public boolean cacheNonDefaultFetchPlanQueries = false;      
>      }
> 
>      private final ConfigurationState _state;
> @@ -193,6 +194,8 @@ public class FetchConfigurationImpl
>         
>          addFetchGroups(Arrays.asList(fetchGroupList));
>          setMaxFetchDepth(conf.getMaxFetchDepth());
> +        
> +        _state.cacheNonDefaultFetchPlanQueries = 
> conf.getCompatibilityInstance().getCacheNonDefaultFetchPlanQueries();
>      }
> 
>      /**
> @@ -201,6 +204,7 @@ public class FetchConfigurationImpl
>      public Object clone() {
>          FetchConfigurationImpl clone = newInstance(null);
>          clone._state.ctx = _state.ctx;
> +        clone._state.cacheNonDefaultFetchPlanQueries = 
> _state.cacheNonDefaultFetchPlanQueries;
>          clone._parent = _parent;
>          clone._fromField = _fromField;
>          clone._fromType = _fromType;
> @@ -346,7 +350,7 @@ public class FetchConfigurationImpl
>          return addFetchGroup(name, true);
>      }
>       
> -    public FetchConfiguration addFetchGroup(String name, boolean 
> recomputeIsDefault) {
> +    private FetchConfiguration addFetchGroup(String name, boolean 
> recomputeIsDefault) {
>          if (StringUtils.isEmpty(name))
>              throw new UserException(_loc.get("null-fg"));
> 
> @@ -383,7 +387,7 @@ public class FetchConfigurationImpl
>          return removeFetchGroup(group, true);
>      }
> 
> -    public FetchConfiguration removeFetchGroup(String group, boolean 
> recomputeIsDefault) {
> +    private FetchConfiguration removeFetchGroup(String group, boolean 
> recomputeIsDefault) {
>          lock();
>          try {
>              if (_state.fetchGroups != null) {
> @@ -482,6 +486,15 @@ public class FetchConfigurationImpl
>      public boolean isDefaultPUFetchGroupConfigurationOnly() {
>          return _state.fetchGroupIsPUDefault;
>      }
> +    
> +    public boolean isFetchConfigurationSQLCacheAdmissible() {
> +        if (_state == null || _state.cacheNonDefaultFetchPlanQueries) {
> +            return false;
> +        } else {
> +            // Only pctx-default matching FetchConfiguration generated SQL is

> cache permissible
> +            return _state.fetchGroupIsPUDefault;
> +        }
> +    }
> 
>      public Set<String> getFields() {
>          if (_state.fields == null) return Collections.emptySet();
> @@ -518,6 +531,7 @@ public class FetchConfigurationImpl
>                  _state.fields = new HashSet<String>();
>              _state.fields.addAll(fields);
>          } finally {
> +            verifyDefaultPUFetchGroups();
>              unlock();
>          }
>          return this;
> 

Mime
View raw message