You are viewing a plain text version of this content. The canonical link for it is here.
Posted to ojb-dev@db.apache.org by ol...@apache.org on 2003/07/26 00:49:08 UTC

cvs commit: db-ojb/src/java/org/apache/ojb/otm/core ConcreteEditingContext.java

olegnitz    2003/07/25 15:49:08

  Modified:    src/java/org/apache/ojb/otm/core ConcreteEditingContext.java
  Log:
  Back to ArrayList for the order
  
  Revision  Changes    Path
  1.23      +14 -20    db-ojb/src/java/org/apache/ojb/otm/core/ConcreteEditingContext.java
  
  Index: ConcreteEditingContext.java
  ===================================================================
  RCS file: /home/cvs/db-ojb/src/java/org/apache/ojb/otm/core/ConcreteEditingContext.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- ConcreteEditingContext.java	25 Jul 2003 00:22:00 -0000	1.22
  +++ ConcreteEditingContext.java	25 Jul 2003 22:49:08 -0000	1.23
  @@ -118,7 +118,7 @@
       private HashSet _withoutBidirAssc;
   
       private HashMap _objects;
  -    private HashMap _order;
  +    private ArrayList _order;
       private Transaction _tx;
       private PersistenceBroker _pb;
       private HashMap _original;
  @@ -135,7 +135,7 @@
           _tx = tx;
           _pb = pb;
           _objects = new HashMap();
  -        _order = new HashMap();
  +        _order = new ArrayList();
           _original = new HashMap();
           _checkpointed = _original;
           pbkey = _pb.getPBKey();
  @@ -244,6 +244,7 @@
                   }
               }
               _objects.put(oid, entry);
  +            _order.add(oid);
           }
           else
           {
  @@ -282,11 +283,6 @@
               }
           }
   
  -        if (_order.get(oid)==null)
  -        {
  -            _order.put(oid,oid);
  -        }
  -
           // perform automatic read lock for all reachable objects
           // if the inserted object is materialized
           if ((handler == null) && (newObj != null))
  @@ -311,12 +307,10 @@
       {
           ContextEntry entry;
   
  -        if (_order.get(oid)!=null)
  -        {
  -            _order.remove(oid);
  -        }
           entry = insertInternal(oid, object, LockType.WRITE_LOCK, true, false);
           entry.state = entry.state.deletePersistent();
  +        _order.remove(oid);
  +        _order.add(oid);
       }
   
       /**
  @@ -412,7 +406,7 @@
       {
           checkpointInternal();
           _checkpointed = new HashMap();
  -        for (Iterator iterator = _order.keySet().iterator(); iterator.hasNext();)
  +        for (Iterator iterator = _order.iterator(); iterator.hasNext();)
           {
               Identity oid = (Identity) iterator.next();
               ContextEntry entry = (ContextEntry) _objects.get(oid);
  @@ -436,7 +430,7 @@
           boolean saveBatchMode = connMan.isBatchMode();
           Swizzling swizzlingStrategy = _tx.getKit().getSwizzlingStrategy();
           LockManager lockManager = LockManager.getInstance();
  -        Identity[] lockOrder = (Identity[]) _order.keySet().toArray(new Identity[_order.size()]);
  +        Identity[] lockOrder = (Identity[]) _order.toArray(new Identity[_order.size()]);
           ObjectCache cache = _pb.serviceObjectCache();
           boolean isInsertVerified = _tx.getKit().isInsertVerified();
   
  @@ -531,7 +525,7 @@
               }
               while (countNewObjects > 0);
   
  -            Identity[] order = (Identity[]) _order.keySet().toArray(new Identity[_order.size()]);
  +            Identity[] order = (Identity[]) _order.toArray(new Identity[_order.size()]);
   
               // Swizzle the context objects and the cache objects
               for (int i = 0; i < order.length; i++)
  @@ -636,7 +630,7 @@
        */
       public void rollback()
       {
  -        for (Iterator iterator = _order.keySet().iterator(); iterator.hasNext();)
  +        for (Iterator iterator = _order.iterator(); iterator.hasNext();)
           {
               Identity oid = (Identity) iterator.next();
               ContextEntry entry = (ContextEntry) _objects.get(oid);
  @@ -680,8 +674,8 @@
   
           // N:1 relations
           Iterator iter = mif.getObjectReferenceDescriptors().iterator();
  -        ObjectReferenceDescriptor rds;
  -        Object relObj;
  +        ObjectReferenceDescriptor rds = null;
  +        Object relObj = null;
           Identity relOid;
   
           while (iter.hasNext())
  @@ -695,7 +689,7 @@
               if (relObj != null)
               {
                   relOid = new Identity(relObj, _pb);
  -                if (_order.get(relOid)==null)
  +                if (_objects.get(relOid) == null)
                   {
                       insertInternal(relOid, relObj, LockType.READ_LOCK, false,
                                      rds.getOtmDependent());
  @@ -738,7 +732,7 @@
                   {
                       relObj = colIterator.next();
                       relOid = new Identity(relObj, _pb);
  -                    if (_order.get(relOid) == null)
  +                    if (_objects.get(relOid) == null)
                       {
                           insertInternal(relOid, relObj, LockType.READ_LOCK, false,
                                          collectionDescriptor.getOtmDependent());
  @@ -1116,7 +1110,7 @@
   
           entry.state = State.PERSISTENT_NEW;
           _objects.put(oid, entry);
  -        _order.put(oid,oid);
  +        _order.add(oid);
       }
   
       /**
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: ojb-dev-unsubscribe@db.apache.org
For additional commands, e-mail: ojb-dev-help@db.apache.org