mkalen      2005/03/11 10:25:01

  Modified:    src/java/org/apache/ojb/broker/core/proxy
                        AbstractCollectionProxy.java
  Log:
  Merge with OJB_1_0_RELEASE branch: merge JavaDoc and placement of 
loadProfileIfNeeded (not as important in OJB1.1 but still good to keep it in a 
central location).
  
  Revision  Changes    Path
  1.5       +17 -16    
db-ojb/src/java/org/apache/ojb/broker/core/proxy/AbstractCollectionProxy.java
  
  Index: AbstractCollectionProxy.java
  ===================================================================
  RCS file: 
/home/cvs/db-ojb/src/java/org/apache/ojb/broker/core/proxy/AbstractCollectionProxy.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- AbstractCollectionProxy.java      11 Mar 2005 18:07:21 -0000      1.4
  +++ AbstractCollectionProxy.java      11 Mar 2005 18:25:01 -0000      1.5
  @@ -61,7 +61,7 @@
        */
       private transient Object profileKey;
       /** Flag set when per-thread metadata profiles are in use. */
  -    private boolean _perThreadDescriptorsEnabled;
  +    private boolean perThreadDescriptorsEnabled;
       /** The query that defines the values in the collection */
       private Query query;
       /** The actual data (if already loaded) */
  @@ -98,12 +98,12 @@
       public AbstractCollectionProxy(PersistenceConfiguration persistenceConf, 
Class collClass, Query query)
       {
           final MetadataManager mm = 
persistenceConf.getOjb().getMetadataManager();
  -        _perThreadDescriptorsEnabled = mm.isEnablePerThreadChanges();
  -        if (_perThreadDescriptorsEnabled)
  +        perThreadDescriptorsEnabled = mm.isEnablePerThreadChanges();
  +        if (perThreadDescriptorsEnabled)
           {
               // mkalen:  To minimize memory footprint we remember only the 
OJB profile key
               //          (instead of all active class-mappings).
  -            Object key = mm.getCurrentProfileKey();
  +            final Object key = mm.getCurrentProfileKey();
               if (key == null)
               {
                   // mkalen:  Unsupported: using proxies with per-thread 
metadata changes without profile keys.
  @@ -116,6 +116,12 @@
           setQuery(query);
       }
   
  +    /**
  +     * Reactivates metadata profile used when creating proxy, if needed.
  +     * Calls to this method should be guarded by checking
  +     * [EMAIL PROTECTED] #perThreadDescriptorsEnabled} since the profile 
never
  +     * needs to be reloaded if not using pre-thread metadata changes.
  +     */
       protected void loadProfileIfNeeded()
       {
           final Object key = getProfileKey();
  @@ -166,10 +172,6 @@
           PersistenceBroker broker = getBroker();
           try
           {
  -            if (_perThreadDescriptorsEnabled)
  -            {
  -                loadProfileIfNeeded();
  -            }
               return broker.getCount(getQuery());
           }
           catch (Exception ex)
  @@ -211,10 +213,6 @@
               }
               else if (size != 0)
               {
  -                if (_perThreadDescriptorsEnabled)
  -                {
  -                    loadProfileIfNeeded();
  -                }
                   result = (Collection) 
broker.getCollectionByQuery(getCollectionClass(), getQuery());
               }
               else
  @@ -242,7 +240,7 @@
           {
               CollectionProxyListener listener;
   
  -            if (_perThreadDescriptorsEnabled)
  +            if (perThreadDescriptorsEnabled)
               {
                   loadProfileIfNeeded();
               }
  @@ -263,7 +261,7 @@
           {
               CollectionProxyListener listener;
   
  -            if (_perThreadDescriptorsEnabled)
  +            if (perThreadDescriptorsEnabled)
               {
                   loadProfileIfNeeded();
               }
  @@ -462,7 +460,10 @@
       protected synchronized PersistenceBroker getBroker() throws 
PBFactoryException
       {
           PersistenceBroker broker;
  -
  +        if (perThreadDescriptorsEnabled)
  +        {
  +            loadProfileIfNeeded();
  +        }
           if (getBrokerKey() == null)
           {
               /*
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to