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 ar...@apache.org on 2006/07/15 16:24:09 UTC

svn commit: r422234 - in /db/ojb/trunk/src/java/org/apache/ojb: broker/util/logging/ broker/util/sequence/ odmg/ odmg/collections/ odmg/link/ odmg/locking/

Author: arminw
Date: Sat Jul 15 07:24:07 2006
New Revision: 422234

URL: http://svn.apache.org/viewvc?rev=422234&view=rev
Log:
merge trunk with 1.0.x

Modified:
    db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/CommonsLoggerImpl.java
    db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/Log4jLoggerImpl.java
    db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/LoggerFactory.java
    db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/LoggerFactoryImpl.java
    db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/LoggerWrapperPrintWriter.java
    db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/PoorMansLoggerImpl.java
    db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/AbstractSequenceManager.java
    db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/SequenceManager.java
    db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/SequenceManagerHighLowImpl.java
    db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/SequenceManagerNextValImpl.java
    db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/SequenceManagerStoredProcedureImpl.java
    db/ojb/trunk/src/java/org/apache/ojb/odmg/DatabaseImpl.java
    db/ojb/trunk/src/java/org/apache/ojb/odmg/HasBroker.java
    db/ojb/trunk/src/java/org/apache/ojb/odmg/ImplementationExt.java
    db/ojb/trunk/src/java/org/apache/ojb/odmg/ImplementationImpl.java
    db/ojb/trunk/src/java/org/apache/ojb/odmg/ImplementationJTAImpl.java
    db/ojb/trunk/src/java/org/apache/ojb/odmg/LocalTxManager.java
    db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DListEntry.java
    db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DListImpl.java
    db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DListIterator.java
    db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DMapEntry.java
    db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DMapImpl.java
    db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DSetImpl.java
    db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DSetIterator.java
    db/ojb/trunk/src/java/org/apache/ojb/odmg/link/LinkEntry.java
    db/ojb/trunk/src/java/org/apache/ojb/odmg/link/LinkEntryMtoN.java
    db/ojb/trunk/src/java/org/apache/ojb/odmg/link/LinkEntryOneToN.java
    db/ojb/trunk/src/java/org/apache/ojb/odmg/link/LinkEntryOneToOne.java
    db/ojb/trunk/src/java/org/apache/ojb/odmg/locking/LockManager.java
    db/ojb/trunk/src/java/org/apache/ojb/odmg/locking/LockManagerOdmgImpl.java

Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/CommonsLoggerImpl.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/CommonsLoggerImpl.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/CommonsLoggerImpl.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/CommonsLoggerImpl.java Sat Jul 15 07:24:07 2006
@@ -22,9 +22,8 @@
  * This is a Logger implementation based on jakarta commons logging.
  * It can be enabled by putting
  * LoggerClass=org.apache.ojb.broker.util.logging.CommonsLoggerImpl
- * in the OJB .properties file. <br>
+ * in the OJB .properties file.
  * 
- * @author <a href="mailto:jbraeuchi@hotmail.com">Jakob Braeuchi</a>
  * @version $Id$
  */
 public class CommonsLoggerImpl implements Logger

Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/Log4jLoggerImpl.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/Log4jLoggerImpl.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/Log4jLoggerImpl.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/Log4jLoggerImpl.java Sat Jul 15 07:24:07 2006
@@ -36,8 +36,6 @@
  * http://jakarta.apache.org/log4j
  * in the javadoc look for org.apache.log4j.examples
  *
- * @author Bertrand
- * @author Thomas Mahler
  * @version $Id$
  */
 public class Log4jLoggerImpl implements Logger

Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/LoggerFactory.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/LoggerFactory.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/LoggerFactory.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/LoggerFactory.java Sat Jul 15 07:24:07 2006
@@ -19,8 +19,6 @@
 /**
  * This is a wrapper thta provides static accessors to LoggerFactoryImpl methods
  *
- * @author Thomas Mahler
- * @author <a href="leandro@ibnetwork.com.br">Leandro Rodrigo Saad Cruz</a>
  * @version $Id$
  */
 public class LoggerFactory

Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/LoggerFactoryImpl.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/LoggerFactoryImpl.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/LoggerFactoryImpl.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/LoggerFactoryImpl.java Sat Jul 15 07:24:07 2006
@@ -28,8 +28,6 @@
  * by the factory is configured by settings in the
  * OJB.properties file.
  *
- * @author Thomas Mahler
- * @author <a href="leandro@ibnetwork.com.br">Leandro Rodrigo Saad Cruz</a>
  * @version $Id$
  * @see <a href="http://jakarta.apache.org/log4j/docs/index.html">jakarta-log4j</a>
  */
@@ -54,7 +52,6 @@
     // yes. it's a singleton !
     private LoggerFactoryImpl()
     {
-
     }
 
     public static LoggerFactoryImpl getInstance()

Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/LoggerWrapperPrintWriter.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/LoggerWrapperPrintWriter.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/LoggerWrapperPrintWriter.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/LoggerWrapperPrintWriter.java Sat Jul 15 07:24:07 2006
@@ -1,5 +1,20 @@
 package org.apache.ojb.broker.util.logging;
 
+/* Copyright 2002-2005 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
 import java.io.PrintWriter;
 
 import org.apache.commons.lang.BooleanUtils;
@@ -7,7 +22,6 @@
 /**
  * Extremely simple piggyback for OJB Logger interface to provide PrintWriter dito.
  *
- * @author <a href="mailto:mkalen@apache.org">Martin Kal&eacute;n</a>
  * @version CVS $Id$
  * @since OJB 1.0.4, 2005-apr-30
  */

Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/PoorMansLoggerImpl.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/PoorMansLoggerImpl.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/PoorMansLoggerImpl.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/util/logging/PoorMansLoggerImpl.java Sat Jul 15 07:24:07 2006
@@ -41,7 +41,7 @@
 
     private String name;
 
-    private int level = WARN;
+    private int level = 0;
 
     public PoorMansLoggerImpl(String name, LoggingConfiguration conf)
     {
@@ -279,14 +279,14 @@
     }
 
 
-    public boolean isDebugEnabled()
+    public final boolean isDebugEnabled()
     {
-        return isEnabledFor(DEBUG);
+        return DEBUG == level;
     }
 
-    public boolean isEnabledFor(int priority)
+    public final boolean isEnabledFor(int priority)
     {
-        return priority >= getLevel();
+        return !(priority < level);
     }
 
     protected void log(String aLevel, Object obj, Throwable t)

Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/AbstractSequenceManager.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/AbstractSequenceManager.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/AbstractSequenceManager.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/AbstractSequenceManager.java Sat Jul 15 07:24:07 2006
@@ -150,13 +150,4 @@
     {
         // do nothing
     }
-
-    /**
-     * noop
-     */
-    public void setReferenceFKs(Object obj, ClassDescriptor cld)
-            throws SequenceManagerException
-    {
-       // do nothing
-    }
 }

Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/SequenceManager.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/SequenceManager.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/SequenceManager.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/SequenceManager.java Sat Jul 15 07:24:07 2006
@@ -34,8 +34,6 @@
  * with several implementor classes, or a baseclass with several subclasses the returned uid
  * should be unique accross all tables representing objects of the extent in question.
  *
- * @author <a href="mailto:thma@apache.org">Thomas Mahler<a>
- * @author <a href="mailto:armin@codeAuLait.de">Armin Waibel</a>
  * @version $Id$
  */
 public interface SequenceManager

Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/SequenceManagerHighLowImpl.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/SequenceManagerHighLowImpl.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/SequenceManagerHighLowImpl.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/SequenceManagerHighLowImpl.java Sat Jul 15 07:24:07 2006
@@ -26,6 +26,7 @@
 import org.apache.ojb.broker.metadata.FieldDescriptor;
 import org.apache.ojb.broker.util.logging.Logger;
 import org.apache.ojb.broker.util.logging.LoggerFactory;
+import org.apache.ojb.broker.util.ObjectModification;
 
 /**
  * High/Low sequence manager implementation generates unique and continuous
@@ -118,10 +119,10 @@
      * sequence name used for global id generation.
      */
     private static final String GLOBAL_SEQUENCE_NAME = "global - default sequence name";
-    private static final Object sync = new Object();
     public static final String PROPERTY_GRAB_SIZE = "grabSize";
     public static final String PROPERTY_GLOBAL_SEQUENCE_ID = "globalSequenceId";
     public static final String PROPERTY_GLOBAL_SEQUENCE_START = "globalSequenceStart";
+    private static final Object sync = new Object();
 
     protected static Map sequencesMap = new HashMap();
 
@@ -136,7 +137,7 @@
         Long start = SequenceManagerHelper.getSeqStart(getConfigurationProperties());
         sequenceStart = start != null ? start.longValue() : 1;
         grabSize = Integer.parseInt(getConfigurationProperty(PROPERTY_GRAB_SIZE, "20"));
-        useGlobalSequenceIdentities = Boolean.valueOf(getConfigurationProperty(PROPERTY_GLOBAL_SEQUENCE_ID, "false")).booleanValue();
+        useGlobalSequenceIdentities = Boolean.getBoolean(getConfigurationProperty(PROPERTY_GLOBAL_SEQUENCE_ID, "false"));
         // support for deprecated properties
         long globalSequenceStart = Long.parseLong(getConfigurationProperty(PROPERTY_GLOBAL_SEQUENCE_START, "1"));
         if(useGlobalSequenceIdentities && globalSequenceStart > sequenceStart)
@@ -148,13 +149,12 @@
     protected long getUniqueLong(FieldDescriptor field) throws SequenceManagerException
     {
         HighLowSequence seq;
-        long id;
-
         String sequenceName = buildSequenceName(field);
         synchronized(sync)
         {
             // try to find sequence
             seq = getSequence(sequenceName);
+
             if (seq == null)
             {
                 // not found, get sequence from database or create new
@@ -163,7 +163,7 @@
             }
 
             // now we have a sequence
-            id = seq.getNextId();
+            long id = seq.getNextId();
             // seq does not have reserved IDs => catch new block of keys
             if (id == 0)
             {
@@ -182,8 +182,8 @@
                             SystemUtils.LINE_SEPARATOR + "PB: " + getBrokerForClass());
                 }
             }
+            return id;
         }
-        return id;
     }
 
     /**
@@ -222,12 +222,7 @@
             mapForDB = new HashMap();
             sequencesMap.put(jcdAlias, mapForDB);
         }
-        HighLowSequence old = (HighLowSequence) mapForDB.put(sequenceName, seq);
-        if(old != null && old.getMaxKey() > seq.getMaxKey())
-        {
-            mapForDB.put(sequenceName, old);
-            seq.setMaxKey(0);
-        }
+        mapForDB.put(sequenceName, seq);
     }
 
     /**
@@ -242,13 +237,16 @@
                 .serviceConnectionManager().getConnectionDescriptor().getJcdAlias());
         if(mapForDB != null)
         {
-            mapForDB.remove(sequenceName);
+            synchronized(sync)
+            {
+                mapForDB.remove(sequenceName);
+            }
         }
     }
 
     protected HighLowSequence getSequence(PersistenceBrokerInternal brokerForSequence,
-                                        FieldDescriptor field,
-                                        String sequenceName)  throws SequenceManagerException
+                                          FieldDescriptor field,
+                                          String sequenceName)  throws SequenceManagerException
     {
         HighLowSequence newSequence = null;
         PersistenceBrokerInternal internBroker = null;
@@ -330,8 +328,8 @@
         //store the sequence to db
         try
         {
-            if(needsInsert) broker.store(newSequence, OJB.INSERT);
-            else broker.store(newSequence, OJB.UPDATE);
+            if(needsInsert) broker.store(newSequence, ObjectModification.INSERT);
+            else broker.store(newSequence, ObjectModification.UPDATE);
         }
         catch (OptimisticLockException e)
         {
@@ -348,7 +346,7 @@
     }
 
     protected HighLowSequence newSequenceObject(String sequenceName,
-                                              FieldDescriptor field)
+                                                FieldDescriptor field)
     {
         HighLowSequence seq = new HighLowSequence();
         seq.setName(sequenceName);

Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/SequenceManagerNextValImpl.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/SequenceManagerNextValImpl.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/SequenceManagerNextValImpl.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/SequenceManagerNextValImpl.java Sat Jul 15 07:24:07 2006
@@ -15,6 +15,7 @@
  * limitations under the License.
  */
 
+import java.sql.PreparedStatement;
 import java.sql.ResultSet;
 import java.sql.Statement;
 
@@ -81,10 +82,6 @@
  * </p>
  * <br/>
  *
- * @author Edson Carlos Ericksson Richter
- * @author Rajeev Kaul
- * @author Thomas Mahler
- * @author Armin Waibel
  * @version $Id$
  */
 public class SequenceManagerNextValImpl extends AbstractSequenceManager
@@ -154,13 +151,13 @@
     protected long buildNextSequence(ClassDescriptor cld, String sequenceName) throws Exception
     {
         ResultSet rs = null;
-        Statement stmt = null;
+        PreparedStatement stmt = null;
         long result = -1;
         StatementManager stmtMan = getBrokerForClass().serviceStatementManager();
         try
         {
-            stmt = stmtMan.getGenericStatement(Query.NOT_SCROLLABLE);
-            rs = stmt.executeQuery(getPlatform().nextSequenceQuery(sequenceName));
+            stmt = stmtMan.getPreparedStatement(getPlatform().nextSequenceQuery(sequenceName) ,Query.NOT_SCROLLABLE, 1, false);
+            rs = stmt.executeQuery();
             rs.next();
             result = rs.getLong(1);
         }

Modified: db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/SequenceManagerStoredProcedureImpl.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/SequenceManagerStoredProcedureImpl.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/SequenceManagerStoredProcedureImpl.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/broker/util/sequence/SequenceManagerStoredProcedureImpl.java Sat Jul 15 07:24:07 2006
@@ -1,6 +1,6 @@
 package org.apache.ojb.broker.util.sequence;
 
-/* Copyright 2003-2004 The Apache Software Foundation
+/* Copyright 2003-2006 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -24,7 +24,6 @@
 import org.apache.ojb.broker.PersistenceBroker;
 import org.apache.ojb.broker.PersistenceBrokerInternal;
 import org.apache.ojb.broker.accesslayer.LookupException;
-import org.apache.ojb.broker.metadata.ClassDescriptor;
 import org.apache.ojb.broker.metadata.FieldDescriptor;
 import org.apache.ojb.broker.platforms.PlatformException;
 import org.apache.ojb.broker.query.Query;
@@ -54,19 +53,24 @@
  * sequence number, in multi server environments.
  * <br/>
  * <pre>
- * CREATE PROCEDURE ojb_nextval_proc @SEQ_NAME varchar(100)
+ * CREATE PROCEDURE OJB_NEXTVAL_PROC @SEQ_NAME varchar(150)
  *              AS
  *		declare @MAX_KEY BIGINT
- *              -- return an error if sequence does not exist
- *              -- so we will know if someone truncates the table
+ *
+ * set nocount off
+ *
  *              set @MAX_KEY = 0
  *
  *              UPDATE OJB_NEXTVAL_SEQ
  *              SET    @MAX_KEY = MAX_KEY = MAX_KEY + 1
  *              WHERE  SEQ_NAME = @SEQ_NAME
  *
+ * -- return an error if
+ * -- sequence does not exist
+ * -- so we will know if someone
+ * -- truncates the table
  *		if @MAX_KEY = 0
- *			select 1/0
+ * RAISERROR ('Sequence %s does not exists!', 16, 1, @SEQ_NAME)
  *		else
  *			select @MAX_KEY
  *
@@ -106,21 +110,12 @@
  *    </td>
  * </tr>
  * </table>
- *
- * <p>
+ * <p/>
  * <b>Limitations:</b>
  * <ul>
  *	<li>do not use when other application use the native key generation ditto</li>
  * </ul>
- * </p>
- * <br/>
- * <br/>
  *
- * @author Ryan Vanderwerf
- * @author Edson Carlos Ericksson Richter
- * @author Rajeev Kaul
- * @author Thomas Mahler
- * @author Armin Waibel
  * @version $Id$
  */
 public class SequenceManagerStoredProcedureImpl extends AbstractSequenceManager
@@ -133,6 +128,7 @@
 
     /**
      * Constructor
+     *
      * @param broker
      */
     public SequenceManagerStoredProcedureImpl(PersistenceBrokerInternal broker)
@@ -142,9 +138,10 @@
 
     /**
      * Insert syntax for our special table
+     *
      * @param sequenceName
      * @param maxKey
-     * @return The sequence sql query
+     * @return sequence insert statement
      */
     protected String sp_createSequenceQuery(String sequenceName, long maxKey)
     {
@@ -156,6 +153,7 @@
     /**
      * Gets the actual key - will create a new row with the max key of table if it
      * does not exist.
+     *
      * @param field
      * @return
      * @throws SequenceManagerException
@@ -181,7 +179,7 @@
             String sequenceName = calculateSequenceName(field);
             try
             {
-                result = buildNextSequence(targetBroker, field.getClassDescriptor(), sequenceName);
+                result = buildNextSequence(targetBroker, sequenceName);
                 /*
                 if 0 was returned we assume that the stored procedure
                 did not work properly.
@@ -211,7 +209,7 @@
                 }
                 try
                 {
-                    result = buildNextSequence(targetBroker, field.getClassDescriptor(), sequenceName);
+                    result = buildNextSequence(targetBroker, sequenceName);
                 }
                 catch (Exception e1)
                 {
@@ -232,14 +230,14 @@
     /**
      * Calls the stored procedure stored procedure throws an
      * error if it doesn't exist.
+     *
      * @param broker
-     * @param cld
      * @param sequenceName
      * @return
      * @throws LookupException
      * @throws SQLException
      */
-    protected long buildNextSequence(PersistenceBroker broker, ClassDescriptor cld, String sequenceName)
+    protected long buildNextSequence(PersistenceBroker broker, String sequenceName)
             throws LookupException, SQLException, PlatformException
     {
         CallableStatement cs = null;
@@ -266,6 +264,7 @@
 
     /**
      * Creates new row in table
+     *
      * @param broker
      * @param field
      * @param sequenceName

Modified: db/ojb/trunk/src/java/org/apache/ojb/odmg/DatabaseImpl.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/odmg/DatabaseImpl.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/odmg/DatabaseImpl.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/odmg/DatabaseImpl.java Sat Jul 15 07:24:07 2006
@@ -33,9 +33,6 @@
 /**
  * Implementation class of the {@link org.odmg.Database} interface.
  * 
- * @author <a href="mailto:thma@apache.org">Thomas Mahler<a>
- * @author <a href="mailto:mattbaird@yahoo.com">Matthew Baird</a>
- * @author <a href="mailto:armin@codeAuLait.de">Armin Waibel</a>
  * @version $Id$
  */
 public class DatabaseImpl implements org.odmg.Database
@@ -165,8 +162,7 @@
                     " Transaction status is '" + TxUtil.getStatusString(getTransaction().getStatus()) + "'." +
                     " Used PBKey was "+getTransaction().getBroker().getPBKey();
             log.error(msg);
-            TransactionInProgressException ex = new TransactionInProgressException(msg);
-            throw ex;
+            throw new TransactionInProgressException(msg);
         }
         isOpen = false;
         // release the configuration reference
@@ -255,7 +251,7 @@
         TransactionImpl tx = getTransaction();
         if (tx == null || !tx.isOpen())
         {
-            throw new TransactionNotInProgressException("Tx is not open. Must have an open TX to call lookup.");
+            throw new TransactionNotInProgressException("Tx is not open. Must have an open TX to unbind object.");
         }
 
         tx.getNamedRootsMap().unbind(name);
@@ -293,7 +289,7 @@
         }
         RuntimeObject rt = new RuntimeObject(object, getTransaction());
         tx.makePersistent(rt);
-        tx.moveToLastInOrderList(rt.getIdentity());
+//        tx.moveToLastInOrderList(rt.getIdentity());
     }
 
     /**
@@ -320,6 +316,6 @@
         }
         RuntimeObject rt = new RuntimeObject(object, tx);
         tx.deletePersistent(rt);
-        tx.moveToLastInOrderList(rt.getIdentity());
+//        tx.moveToLastInOrderList(rt.getIdentity());
     }
 }

Modified: db/ojb/trunk/src/java/org/apache/ojb/odmg/HasBroker.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/odmg/HasBroker.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/odmg/HasBroker.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/odmg/HasBroker.java Sat Jul 15 07:24:07 2006
@@ -1,6 +1,6 @@
 package org.apache.ojb.odmg;
 
-/* Copyright 2002-2004 The Apache Software Foundation
+/* Copyright 2002-2005 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

Modified: db/ojb/trunk/src/java/org/apache/ojb/odmg/ImplementationExt.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/odmg/ImplementationExt.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/odmg/ImplementationExt.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/odmg/ImplementationExt.java Sat Jul 15 07:24:07 2006
@@ -1,9 +1,6 @@
 package org.apache.ojb.odmg;
 
-import org.apache.ojb.odmg.locking.LockManager;
-import org.odmg.Implementation;
-
-/* Copyright 2002-2004 The Apache Software Foundation
+/* Copyright 2002-2005 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,6 +15,9 @@
  * limitations under the License.
  */
 
+import org.odmg.Implementation;
+import org.apache.ojb.odmg.locking.LockManager;
+
 /**
  * Offers useful none odmg-standard methods of the odmg {@link org.odmg.Implementation} interface.
  * <p>
@@ -135,39 +135,39 @@
     public void setOrdering(boolean ordering);
 
     /**
-     * Returns whether or not the persistent method calls determine
-     * the persistent object order on commit.
-     *
-     * @see #setNoteUserOrder(boolean)
-     */
-    public boolean isNoteUserOrder();
-
-    /**
-     * If <em>true</em> the order of persisting method calls like
-     * <br/> - {@link org.odmg.Transaction#lock(Object, int)}).
-     * <br/> - {@link org.odmg.Database#deletePersistent(Object)}).
-     * <br/> - {@link org.odmg.Database#makePersistent(Object)})
-     * determine the order of objects before commit.
-     * <br/>
-     * If <em>false</em> the ordering was determined by OJB's internal
-     * method calls and user calls.
-     * <br/>
-     * However it's possible to set this value only for the current
-     * used {@link org.odmg.Transaction} using {@link TransactionExt#setNoteUserOrder(boolean)}
-     * <p/>
-     * <strong>NOTE:</strong> If OJB's ordering algorithm (see
-     * {@link #setOrdering(boolean)}) is enabled, the
-     * order of objects may change on commit.
-     *
-     * @param noteUserOrder If <em>true</em> the order of persisting
-     * method calls determine the order of objects.
-     */
-    public void setNoteUserOrder(boolean noteUserOrder);
-
-    /**
      * Return OJB's odmg-specific {@link org.apache.ojb.odmg.locking.LockManager}.
      */
     public LockManager getLockManager();
+
+//    /**
+//     * Returns whether or not the persistent method calls determine
+//     * the persistent object order on commit.
+//     *
+//     * @see #setNoteUserOrder(boolean)
+//     */
+//    public boolean isNoteUserOrder();
+//
+//    /**
+//     * If <em>true</em> the order of persisting method calls like
+//     * <br/> - {@link org.odmg.Transaction#lock(Object, int)}).
+//     * <br/> - {@link org.odmg.Database#deletePersistent(Object)}).
+//     * <br/> - {@link org.odmg.Database#makePersistent(Object)})
+//     * determine the order of objects before commit.
+//     * <br/>
+//     * If <em>false</em> the ordering was determined by OJB's internal
+//     * method calls and user calls.
+//     * <br/>
+//     * However it's possible to set this value only for the current
+//     * used {@link org.odmg.Transaction} using {@link TransactionExt#setNoteUserOrder(boolean)}
+//     * <p/>
+//     * <strong>NOTE:</strong> If OJB's ordering algorithm (see
+//     * {@link #setOrdering(boolean)}) is enabled, the
+//     * order of objects may change on commit.
+//     *
+//     * @param noteUserOrder If <em>true</em> the order of persisting
+//     * method calls determine the order of objects.
+//     */
+//    public void setNoteUserOrder(boolean noteUserOrder);
 
 
 //    /**

Modified: db/ojb/trunk/src/java/org/apache/ojb/odmg/ImplementationImpl.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/odmg/ImplementationImpl.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/odmg/ImplementationImpl.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/odmg/ImplementationImpl.java Sat Jul 15 07:24:07 2006
@@ -15,10 +15,6 @@
  * limitations under the License.
  */
 
-import java.util.ArrayList;
-import java.util.List;
-
-import org.apache.commons.lang.SerializationUtils;
 import org.apache.commons.lang.builder.ToStringBuilder;
 import org.apache.commons.lang.builder.ToStringStyle;
 import org.apache.ojb.broker.Identity;
@@ -32,7 +28,6 @@
 import org.apache.ojb.odmg.collections.DSetExt;
 import org.apache.ojb.odmg.locking.LockManager;
 import org.apache.ojb.odmg.locking.LockManagerOdmgImpl;
-import org.apache.ojb.odmg.oql.EnhancedOQLQuery;
 import org.apache.ojb.odmg.oql.OQLQueryImpl;
 import org.odmg.DArray;
 import org.odmg.DBag;
@@ -42,6 +37,7 @@
 import org.odmg.Database;
 import org.odmg.DatabaseClosedException;
 import org.odmg.Implementation;
+import org.odmg.OQLQuery;
 import org.odmg.Transaction;
 
 
@@ -58,7 +54,6 @@
 {
     private Logger log = LoggerFactory.getLogger(ImplementationImpl.class);
 
-    private List usedDatabases = new ArrayList();
     private DatabaseImpl currentDatabase;
     private OJBTxManager txManager;
     private LockManager lockManager;
@@ -69,7 +64,7 @@
     private boolean implicitLocking;
     private boolean implicitLockingBackward;
     private boolean ordering;
-    private boolean noteUserOrder;
+    private boolean managed = false;
 
     /**
      * Creates a new implementation instance. Please do not use this directly
@@ -163,7 +158,7 @@
      * @return The new <code>OQLQuery</code> object.
      * @see org.odmg.OQLQuery
      */
-    public EnhancedOQLQuery newOQLQuery()
+    public OQLQuery newOQLQuery()
     {
         if ((getCurrentDatabase() == null) || !getCurrentDatabase().isOpen())
         {
@@ -295,12 +290,15 @@
         }
         else
         {
-            // otherwise, use default
+            log.warn("Can't find open database, try to use the default configuration");
+            /**
+             * otherwise, use default.
+             */
             broker = ojb.lookupBroker();
         }
         oid = broker.serviceIdentity().buildIdentity(obj);
-
-        return new String(SerializationUtils.serialize(oid));
+        broker.close();
+        return oid.toString();
     }
 
     /**
@@ -335,7 +333,7 @@
         }
         if (log.isDebugEnabled()) log.debug("Set current database " + newDB + " PBKey was " + newDB.getPersistenceConfiguration().getKey());
         setCurrentDatabase(newDB);
-        usedDatabases.add(newDB.getPersistenceConfiguration().getKey());
+//        usedDatabases.add(newDB.getPBKey());
     }
 
     /**
@@ -346,8 +344,8 @@
      *
      * @see ImplementationExt#setImplicitLocking(boolean)
      */
-	public void setImplicitLocking(boolean value)
-	{
+    public void setImplicitLocking(boolean value)
+    {
         if(implicitLockingBackward)
         {
             ((TransactionExt)currentTransaction()).setImplicitLocking(value);
@@ -356,7 +354,7 @@
         {
             this.implicitLocking = value;
         }
-	}
+    }
 
     /**
      * @see ImplementationExt#isImplicitLocking()
@@ -408,16 +406,6 @@
         this.ordering = ordering;
     }
 
-    public boolean isNoteUserOrder()
-    {
-        return noteUserOrder;
-    }
-
-    public void setNoteUserOrder(boolean noteUserOrder)
-    {
-        this.noteUserOrder = noteUserOrder;
-    }
-
     /**
      * Allow to use method {@link #setImplicitLocking(boolean)} in the same way
      * as before version 1.0.4 - if set 'true', recommended setting is 'false'.
@@ -430,13 +418,22 @@
         this.implicitLockingBackward = implicitLockingBackward;
     }
 
+    public boolean isManaged()
+    {
+        return managed;
+    }
+
+    public void setManaged(boolean managed)
+    {
+        this.managed = managed;
+    }
+
     public String toString()
     {
         return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                 .append("implicitLocking", isImplicitLocking())
                 .append("implicitWriteLocks", isImpliciteWriteLocks())
                 .append("ordering", isOrdering())
-                .append("noteUserOrder", isNoteUserOrder())
                 .append("oqlCollectionClass", getOqlCollectionClass())
                 .append("txManager", getTxManager())
                 .append("lockManager", getLockManager())

Modified: db/ojb/trunk/src/java/org/apache/ojb/odmg/ImplementationJTAImpl.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/odmg/ImplementationJTAImpl.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/odmg/ImplementationJTAImpl.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/odmg/ImplementationJTAImpl.java Sat Jul 15 07:24:07 2006
@@ -26,6 +26,7 @@
 import org.odmg.Database;
 import org.odmg.Implementation;
 import org.odmg.Transaction;
+import org.odmg.OQLQuery;
 
 /**
  * Implementation of the ODMG {@link Implementation} interface for use in
@@ -40,6 +41,7 @@
     protected ImplementationJTAImpl(org.apache.ojb.broker.OJB ojb)
     {
         super(ojb);
+        setManaged(true);
     }
 
     public Database getDatabase(Object obj)
@@ -59,7 +61,7 @@
         return new NarrowTransaction((TransactionImpl) super.currentTransaction());
     }
 
-    public EnhancedOQLQuery newOQLQuery()
+    public OQLQuery newOQLQuery()
     {
         beginInternTransaction();
         return super.newOQLQuery();

Modified: db/ojb/trunk/src/java/org/apache/ojb/odmg/LocalTxManager.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/odmg/LocalTxManager.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/odmg/LocalTxManager.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/odmg/LocalTxManager.java Sat Jul 15 07:24:07 2006
@@ -16,8 +16,12 @@
  */
 
 import java.util.Hashtable;
+import java.util.ArrayList;
 
 import org.odmg.TransactionNotInProgressException;
+import org.odmg.TransactionInProgressException;
+import org.apache.ojb.broker.util.logging.LoggerFactory;
+import org.apache.ojb.broker.util.logging.Logger;
 
 /**
  * In a non-appserver environment, without a transaction manager, we can
@@ -29,6 +33,8 @@
  */
 public class LocalTxManager implements OJBTxManager
 {
+    private static Logger log = LoggerFactory.getLogger(LocalTxManager.class);
+
     /**
      * Internal table which provides mapping between threads and transactions.
      * This is required because a Thread can join a Transaction already in
@@ -36,7 +42,7 @@
      * If the thread joins a transaction, then "getTransaction()" should return
      * the apropriate one.  The only way we can ensure that is by keeping hold
      * of the txTable.
-     * 
+     *
      * TODO: Is there a better way than using static ?
      */
     private static TransactionTable tx_table = new TransactionTable();
@@ -54,7 +60,7 @@
     public TransactionImpl getCurrentTransaction()
     {
         TransactionImpl tx = tx_table.get(Thread.currentThread());
-        if (tx == null)
+        if(tx == null)
         {
             throw new TransactionNotInProgressException(
                     "Calling method needed transaction, but no transaction found for current thread :-(");
@@ -71,36 +77,30 @@
         return tx_table.get(Thread.currentThread());
     }
 
-	/**
-	 * add the current transaction to the map key'd by the calling thread.
-	 */
+    /** add the current transaction to the map key'd by the calling thread. */
     public void registerTx(TransactionImpl tx)
     {
         tx_table.put(Thread.currentThread(), tx);
     }
 
-	/**
-	 * remove the current transaction from the map key'd by the calling thread.
-	 */
+    /** remove the current transaction from the map key'd by the calling thread. */
     public void deregisterTx(Object token)
     {
         tx_table.remove(Thread.currentThread());
     }
-    
-	/**
-	 * included to keep interface contract consistent.
-	 */
+
+    /** included to keep interface contract consistent. */
     public void abortExternalTx(TransactionImpl odmgTrans)
     {
-    	/**
-    	 * no op
-    	 */
+        /**
+         * no op
+         */
     }
 
-
     //=======================================================
     // inner class
     //=======================================================
+
     /**
      * TransactionTable provides a mapping between the calling
      * thread and the Transaction it is currently using.
@@ -113,14 +113,10 @@
      */
     static final class TransactionTable
     {
-        /**
-         * the internal Hashtable mapping Transactions to threads
-         */
+        /** the internal Hashtable mapping Transactions to threads */
         private Hashtable m_table = new Hashtable();
 
-        /**
-         * Creates new TransactionTable
-         */
+        /** Creates new TransactionTable */
         public TransactionTable()
         {
         }
@@ -140,7 +136,7 @@
          * Store the Thread/Transaction pair in the TransactionTable
          *
          * @param key_thread Thread that the transaction will be associated to
-         * @param value_tx   Transaction to be associated with the thread
+         * @param value_tx Transaction to be associated with the thread
          */
         public void put(Thread key_thread, TransactionImpl value_tx)
         {
@@ -155,6 +151,18 @@
         public void remove(Thread key_thread)
         {
             m_table.remove(key_thread);
+        }
+
+        protected void finalize() throws Throwable
+        {
+            super.finalize();
+            if(m_table.size() > 0)
+            {
+                log.error("Found registered transactions on shutdown, please check your tx-demarcation," +
+                        " tx's are: " + new ArrayList(m_table.values()));
+                throw new TransactionInProgressException("Found registered transactions on shutdown, please check your tx-demarcation");
+
+            }
         }
     }
 }

Modified: db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DListEntry.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DListEntry.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DListEntry.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DListEntry.java Sat Jul 15 07:24:07 2006
@@ -43,7 +43,8 @@
     /*
      * declare transient, because ManageableCollection entries need to be {@link java.io.Serializable}.
      */
-    private transient Logger log;
+    private Logger log = LoggerFactory.getLogger(DListEntry.class);
+
     protected transient Object realSubject;
     protected transient DListImpl dList;
 
@@ -71,15 +72,6 @@
         this.realSubject = theObject;
     }
 
-    protected Logger getLog()
-    {
-        if(log == null)
-        {
-            log = LoggerFactory.getLogger(DListEntry.class);
-        }
-        return log;
-    }
-
     protected void prepareForPersistency(PersistenceBroker broker)
     {
         if(oid == null)
@@ -124,7 +116,7 @@
                 if(realSubject != null)
                 {
                     RuntimeObject rt = new RuntimeObject(realSubject, tx, false);
-                    tx.lockAndRegister(rt, Transaction.READ, tx.getRegistrationList());
+                    tx.lockAndRegister(rt, Transaction.READ);
                 }
             }
             else
@@ -144,7 +136,7 @@
                 }
                 else
                 {
-                    getLog().warn("No tx, no PBKey - can't materialise object with Identity " + getOid());
+                    log.warn("No tx, no PBKey - can't materialise object with Identity " + getOid());
                 }
             }
         }

Modified: db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DListImpl.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DListImpl.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DListImpl.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DListImpl.java Sat Jul 15 07:24:07 2006
@@ -61,7 +61,7 @@
 {
     private static final long serialVersionUID = -9219943066614026526L;
 
-    private transient Logger log;
+    private Logger log = LoggerFactory.getLogger(DListImpl.class);
     private transient OJBTxManager txManager;
     private transient PersistenceConfiguration configuration;
 
@@ -84,15 +84,6 @@
         this.configuration = conf;
     }
 
-    protected Logger getLog()
-    {
-        if (log == null)
-        {
-            log = LoggerFactory.getLogger(DListImpl.class);
-        }
-        return log;
-    }
-
     public void setConfiguration(PersistenceConfiguration pc)
     {
         this.configuration = pc;
@@ -160,14 +151,13 @@
         if (checkForOpenTransaction(tx))
         {
             RuntimeObject rt = new RuntimeObject(this, tx);
-            List regList = tx.getRegistrationList();
-            tx.lockAndRegister(rt, Transaction.WRITE, false, regList);
+            tx.lockAndRegister(rt, Transaction.WRITE, false);
 
             rt = new RuntimeObject(element, tx);
-            tx.lockAndRegister(rt, Transaction.READ, regList);
+            tx.lockAndRegister(rt, Transaction.READ);
 
             rt = new RuntimeObject(entry, tx, true);
-            tx.lockAndRegister(rt, Transaction.WRITE, false, regList);
+            tx.lockAndRegister(rt, Transaction.WRITE, false);
         }
 
         // changing the position markers of entries:
@@ -178,6 +168,7 @@
         }
         catch (Exception ignored)
         {
+            // ignore
         }
         for (int i = offset; i < elements.size(); i++)
         {
@@ -218,6 +209,7 @@
         }
         catch (Exception ignored)
         {
+            // ignore
         }
         for (int i = offset; i < elements.size(); i++)
         {
@@ -415,11 +407,11 @@
             }
             catch (PersistenceBrokerException e)
             {
-                getLog().error(e);
+                log.error(e);
                 throw new ODMGRuntimeException(e.getMessage());
             }
             Query q = QueryFactory.newQuery(clazz, allElementsCriteria);
-            if (getLog().isDebugEnabled()) getLog().debug(q.toString());
+            if (log.isDebugEnabled()) log.debug(q.toString());
 
             result = null;
             try
@@ -428,7 +420,7 @@
             }
             catch (PersistenceBrokerException e)
             {
-                getLog().error("Query failed", e);
+                log.error("Query failed", e);
                 throw new OJBRuntimeException(e);
             }
         }

Modified: db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DListIterator.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DListIterator.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DListIterator.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DListIterator.java Sat Jul 15 07:24:07 2006
@@ -1,6 +1,6 @@
 package org.apache.ojb.odmg.collections;
 
-/* Copyright 2003-2004 The Apache Software Foundation
+/* Copyright 2003-2005 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -63,7 +63,7 @@
         if (tx != null)
         {
             RuntimeObject rt = new RuntimeObject(entry, tx, true);
-            tx.lockAndRegister(rt, Transaction.WRITE, false, tx.getRegistrationList());
+            tx.lockAndRegister(rt, Transaction.WRITE, false);
         }
     }
 

Modified: db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DMapEntry.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DMapEntry.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DMapEntry.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DMapEntry.java Sat Jul 15 07:24:07 2006
@@ -1,7 +1,6 @@
 package org.apache.ojb.odmg.collections;
 
-
-/* Copyright 2002-2004 The Apache Software Foundation
+/* Copyright 2002-2005 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -40,7 +39,7 @@
 public class DMapEntry implements Entry, Serializable, PersistenceBrokerAware
 {
     private static final long serialVersionUID = 4382757889982004339L;
-    private transient Logger log = LoggerFactory.getLogger(DMapEntry.class);
+    private Logger log = LoggerFactory.getLogger(DMapEntry.class);
 
     private Integer id;
     private Integer dmapId;
@@ -78,15 +77,6 @@
         valueRealSubject = value;
     }
 
-    protected Logger getLog()
-    {
-        if(log == null)
-        {
-            log = LoggerFactory.getLogger(DMapEntry.class);
-        }
-        return log;
-    }
-
     protected void prepareForPersistency(PersistenceBroker broker)
     {
         if(keyOid == null)
@@ -122,7 +112,7 @@
     {
         if(keyOid == null)
         {
-            getLog().info("Cannot retrieve real key object because its id is not known");
+            log.info("Cannot retrieve real key object because its id is not known");
         }
         else
         {
@@ -134,7 +124,7 @@
     {
         if(valueOid == null)
         {
-            getLog().info("Cannot retrieve real key object because its id is not known");
+            log.info("Cannot retrieve real key object because its id is not known");
         }
         else
         {
@@ -178,7 +168,7 @@
                 }
                 else
                 {
-                    getLog().warn("No tx, no PBKey - can't materialise key with Identity " + getKeyOid());
+                    log.warn("No tx, no PBKey - can't materialise key with Identity " + getKeyOid());
                 }
             }
         }
@@ -238,7 +228,7 @@
                 }
                 else
                 {
-                    getLog().warn("No tx, no PBKey - can't materialise value with Identity " + getKeyOid());
+                    log.warn("No tx, no PBKey - can't materialise value with Identity " + getKeyOid());
                 }
             }
         }

Modified: db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DMapImpl.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DMapImpl.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DMapImpl.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DMapImpl.java Sat Jul 15 07:24:07 2006
@@ -1,6 +1,6 @@
 package org.apache.ojb.odmg.collections;
 
-/* Copyright 2002-2004 The Apache Software Foundation
+/* Copyright 2002-2005 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,7 +18,6 @@
 import java.io.Serializable;
 import java.util.AbstractMap;
 import java.util.Iterator;
-import java.util.List;
 import java.util.Set;
 
 import org.apache.commons.lang.builder.ToStringBuilder;
@@ -26,8 +25,6 @@
 import org.apache.ojb.broker.PersistenceBrokerException;
 import org.apache.ojb.broker.PersistenceConfiguration;
 import org.apache.ojb.broker.util.collections.ManageableSetImpl;
-import org.apache.ojb.broker.util.logging.Logger;
-import org.apache.ojb.broker.util.logging.LoggerFactory;
 import org.apache.ojb.odmg.OJBTxManager;
 import org.apache.ojb.odmg.RuntimeObject;
 import org.apache.ojb.odmg.TransactionImpl;
@@ -41,7 +38,7 @@
 public class DMapImpl extends AbstractMap implements DMapExt, Serializable
 {
 	private static final long serialVersionUID = 7048246616243056480L;
-    private transient Logger log;
+    //private Logger log = LoggerFactory.getLogger(DMapImpl.class);
     private transient OJBTxManager txManager;
     private transient PersistenceConfiguration configuration;
 
@@ -64,15 +61,6 @@
         this.configuration = conf;
     }
 
-    protected Logger getLog()
-    {
-        if (log == null)
-        {
-            log = LoggerFactory.getLogger(DMapImpl.class);
-        }
-        return log;
-    }
-
     public void setConfiguration(PersistenceConfiguration pc)
     {
         this.configuration = pc;
@@ -142,18 +130,17 @@
             TransactionImpl tx = getTransaction(false);
             if ((tx != null) && (tx.isOpen()))
             {
-                List regList = tx.getRegistrationList();
                 RuntimeObject rt = new RuntimeObject(this, tx);
-                tx.lockAndRegister(rt, Transaction.WRITE, false, regList);
+                tx.lockAndRegister(rt, Transaction.WRITE, false);
 
                 rt = new RuntimeObject(key, tx);
-                tx.lockAndRegister(rt, Transaction.READ, regList);
+                tx.lockAndRegister(rt, Transaction.READ);
 
                 rt = new RuntimeObject(value, tx);
-                tx.lockAndRegister(rt, Transaction.READ, regList);
+                tx.lockAndRegister(rt, Transaction.READ);
 
                 rt = new RuntimeObject(entry, tx, true);
-                tx.lockAndRegister(rt, Transaction.WRITE, false, regList);
+                tx.lockAndRegister(rt, Transaction.WRITE, false);
             }
             return null;
         }
@@ -214,7 +201,7 @@
      * Sets the entries.
      * @param entries The entries to set
      */
-    public void setEntries(ManageableSetImpl entries)
+    public void setEntries(Set entries)
     {
         this.entries = entries;
     }

Modified: db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DSetImpl.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DSetImpl.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DSetImpl.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DSetImpl.java Sat Jul 15 07:24:07 2006
@@ -1,6 +1,6 @@
 package org.apache.ojb.odmg.collections;
 
-/* Copyright 2002-2004 The Apache Software Foundation
+/* Copyright 2002-2005 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -56,7 +56,7 @@
 {
 	private static final long serialVersionUID = -4459673364598652639L;
 
-    private transient Logger log;
+    private Logger log = LoggerFactory.getLogger(DSetImpl.class);
     private transient OJBTxManager txManager;
     private transient PersistenceConfiguration configuration;
 
@@ -80,15 +80,6 @@
         this.configuration = conf;
     }
 
-    protected Logger getLog()
-    {
-        if (log == null)
-        {
-            log = LoggerFactory.getLogger(DSetImpl.class);
-        }
-        return log;
-    }
-
     public void setConfiguration(PersistenceConfiguration pc)
     {
         this.configuration = pc;
@@ -149,15 +140,14 @@
             TransactionImpl tx = getTransaction(false);
             if ((tx != null) && (tx.isOpen()))
             {
-                List regList = tx.getRegistrationList();
                 RuntimeObject rt = new RuntimeObject(this, tx);
-                tx.lockAndRegister(rt, Transaction.WRITE, false, regList);
+                tx.lockAndRegister(rt, Transaction.WRITE, false);
 
                 rt = new RuntimeObject(o, tx);
-                tx.lockAndRegister(rt, Transaction.READ, regList);
+                tx.lockAndRegister(rt, Transaction.READ);
 
                 rt = new RuntimeObject(entry, tx, true);
-                tx.lockAndRegister(rt, Transaction.WRITE, false, regList);
+                tx.lockAndRegister(rt, Transaction.WRITE, false);
             }
             return true;
         }

Modified: db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DSetIterator.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DSetIterator.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DSetIterator.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/odmg/collections/DSetIterator.java Sat Jul 15 07:24:07 2006
@@ -1,6 +1,6 @@
 package org.apache.ojb.odmg.collections;
 
-/* Copyright 2002-2004 The Apache Software Foundation
+/* Copyright 2002-2005 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.

Modified: db/ojb/trunk/src/java/org/apache/ojb/odmg/link/LinkEntry.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/odmg/link/LinkEntry.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/odmg/link/LinkEntry.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/odmg/link/LinkEntry.java Sat Jul 15 07:24:07 2006
@@ -1,10 +1,6 @@
 package org.apache.ojb.odmg.link;
 
-import org.apache.commons.lang.builder.ToStringBuilder;
-import org.apache.ojb.broker.PersistenceBroker;
-import org.apache.ojb.broker.metadata.ObjectReferenceDescriptor;
-
-/* Copyright 2002-2004 The Apache Software Foundation
+/* Copyright 2002-2005 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -18,6 +14,10 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
+import org.apache.commons.lang.builder.ToStringBuilder;
+import org.apache.ojb.broker.PersistenceBroker;
+import org.apache.ojb.broker.metadata.ObjectReferenceDescriptor;
 
 /**
  * @author <a href="mailto:arminw@apache.org">Armin Waibel</a>

Modified: db/ojb/trunk/src/java/org/apache/ojb/odmg/link/LinkEntryMtoN.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/odmg/link/LinkEntryMtoN.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/odmg/link/LinkEntryMtoN.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/odmg/link/LinkEntryMtoN.java Sat Jul 15 07:24:07 2006
@@ -1,9 +1,6 @@
 package org.apache.ojb.odmg.link;
 
-import org.apache.ojb.broker.PersistenceBroker;
-import org.apache.ojb.broker.metadata.CollectionDescriptor;
-
-/* Copyright 2002-2004 The Apache Software Foundation
+/* Copyright 2002-2005 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,6 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
+import org.apache.ojb.broker.PersistenceBroker;
+import org.apache.ojb.broker.metadata.CollectionDescriptor;
 
 /**
  * @author <a href="mailto:arminw@apache.org">Armin Waibel</a>

Modified: db/ojb/trunk/src/java/org/apache/ojb/odmg/link/LinkEntryOneToN.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/odmg/link/LinkEntryOneToN.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/odmg/link/LinkEntryOneToN.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/odmg/link/LinkEntryOneToN.java Sat Jul 15 07:24:07 2006
@@ -1,9 +1,6 @@
 package org.apache.ojb.odmg.link;
 
-import org.apache.ojb.broker.PersistenceBroker;
-import org.apache.ojb.broker.metadata.CollectionDescriptor;
-
-/* Copyright 2002-2004 The Apache Software Foundation
+/* Copyright 2002-2005 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,6 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
+import org.apache.ojb.broker.PersistenceBroker;
+import org.apache.ojb.broker.metadata.CollectionDescriptor;
 
 /**
  * @author <a href="mailto:arminw@apache.org">Armin Waibel</a>

Modified: db/ojb/trunk/src/java/org/apache/ojb/odmg/link/LinkEntryOneToOne.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/odmg/link/LinkEntryOneToOne.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/odmg/link/LinkEntryOneToOne.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/odmg/link/LinkEntryOneToOne.java Sat Jul 15 07:24:07 2006
@@ -1,9 +1,6 @@
 package org.apache.ojb.odmg.link;
 
-import org.apache.ojb.broker.PersistenceBroker;
-import org.apache.ojb.broker.metadata.ObjectReferenceDescriptor;
-
-/* Copyright 2002-2004 The Apache Software Foundation
+/* Copyright 2002-2005 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -17,6 +14,9 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
+
+import org.apache.ojb.broker.PersistenceBroker;
+import org.apache.ojb.broker.metadata.ObjectReferenceDescriptor;
 
 /**
  * @author <a href="mailto:arminw@apache.org">Armin Waibel</a>

Modified: db/ojb/trunk/src/java/org/apache/ojb/odmg/locking/LockManager.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/odmg/locking/LockManager.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/odmg/locking/LockManager.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/odmg/locking/LockManager.java Sat Jul 15 07:24:07 2006
@@ -1,6 +1,6 @@
 package org.apache.ojb.odmg.locking;
 
-/* Copyright 2002-2004 The Apache Software Foundation
+/* Copyright 2002-2005 The Apache Software Foundation
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -15,19 +15,20 @@
  * limitations under the License.
  */
 
-import org.apache.ojb.broker.Identity;
 import org.apache.ojb.odmg.TransactionImpl;
+import org.apache.ojb.broker.Identity;
+import org.apache.ojb.broker.metadata.ClassDescriptor;
 
 /**
- * This interface declares the functionality of the OJB internal Locking mechanism.
- * A default implementaion LockManagerDefaultImpl is provided. This implementaion
- * keeps distributed locks in the database. The locking mechanisms thus involves a
- * lot of database lookups and writes. For some environments this solution may not
- * be adequate. OJB allows to provide user defined implementations of this interface.
- * To activate a user defined LockManagerDefaultImpl it must be configured in the OJB.properties file.
+ * This interface declares the functionality of the ODMG-api implementation Locking mechanism
+ * and wraps OJB's kernel locking manager (see {@link org.apache.ojb.broker.locking.LockManager}).
+ * The internal used implementaion class of this interface is {@link LockManagerOdmgImpl}.
+ * <br/>
+ * The OJB kernel Locking-api allows to provide user defined implementations
+ * of {@link org.apache.ojb.broker.locking.LockManager} configured in the
+ * OJB.properties file.
  *
- *
- * @author thma
+ * @version $Id: $
  */
 public interface LockManager
 {
@@ -35,78 +36,66 @@
      * aquires a readlock for transaction tx on object obj.
      * Returns true if successful, else false.
      */
-    public abstract boolean readLock(TransactionImpl tx, Object obj);
+    public boolean readLock(TransactionImpl tx, Identity oid);
 
     /**
      * aquires a readlock for transaction tx on object obj.
      * Returns true if successful, else false.
      */
-    public abstract boolean readLock(TransactionImpl tx, Identity oid, Object obj);
-
+    public boolean readLock(TransactionImpl tx, Identity oid, ClassDescriptor cld);
 
     /**
      * aquires a writelock for transaction tx on object obj.
      * Returns true if successful, else false.
      */
-    public abstract boolean writeLock(TransactionImpl tx, Object obj);
+    public boolean writeLock(TransactionImpl tx, Identity oid);
 
     /**
      * aquires a writelock for transaction tx on object obj.
      * Returns true if successful, else false.
      */
-    public abstract boolean writeLock(TransactionImpl tx, Identity oid, Object obj);
-
+    public boolean writeLock(TransactionImpl tx, Identity oid, ClassDescriptor cld);
 
     /**
      * upgrades readlock for transaction tx on object obj to a writelock.
      * If no readlock existed a writelock is acquired anyway.
      * Returns true if successful, else false.
      */
-    public abstract boolean upgradeLock(TransactionImpl tx, Object obj);
+    public boolean upgradeLock(TransactionImpl tx, Identity oid);
 
     /**
      * upgrades readlock for transaction tx on object obj to a writelock.
      * If no readlock existed a writelock is acquired anyway.
      * Returns true if successful, else false.
      */
-    public abstract boolean upgradeLock(TransactionImpl tx, Identity oid, Object obj);
-
-
-    /**
-     * releases a lock for transaction tx on object obj.
-     * Returns true if successful, else false.
-     */
-    public abstract boolean releaseLock(TransactionImpl tx, Object obj);
-
-    /**
-     * releases a lock for transaction tx on object obj.
-     * Returns true if successful, else false.
-     */
-    public abstract boolean releaseLock(TransactionImpl tx, Identity oid, Object obj);
-
+    public boolean upgradeLock(TransactionImpl tx, Identity oid, ClassDescriptor cld);
 
     /**
      * checks if there is a readlock for transaction tx on object obj.
      * Returns true if so, else false.
      */
-    public abstract boolean checkRead(TransactionImpl tx, Object obj);
+    public boolean checkRead(TransactionImpl tx, Identity oid);
 
     /**
-     * checks if there is a readlock for transaction tx on object obj.
+     * checks if there is a writelock for transaction tx on object obj.
      * Returns true if so, else false.
      */
-    public abstract boolean checkRead(TransactionImpl tx, Identity oid, Object obj);
+    public boolean checkWrite(TransactionImpl tx, Identity oid);
 
+    /**
+     * releases a lock for transaction tx on object obj.
+     * Returns true if successful, else false.
+     */
+    public boolean releaseLock(TransactionImpl tx, Identity oid);
 
     /**
-     * checks if there is a writelock for transaction tx on object obj.
-     * Returns true if so, else false.
+     * Releases all locks acquired by the specified transaction.
      */
-    public abstract boolean checkWrite(TransactionImpl tx, Object obj);
+    public void releaseLocks(TransactionImpl tx);
 
     /**
-     * checks if there is a writelock for transaction tx on object obj.
-     * Returns true if so, else false.
+     * Returns info about the used lock manager implementation and the state
+     * of the lock manager.
      */
-    public abstract boolean checkWrite(TransactionImpl tx, Identity oid, Object obj);
+    public String getLockInfo();
 }

Modified: db/ojb/trunk/src/java/org/apache/ojb/odmg/locking/LockManagerOdmgImpl.java
URL: http://svn.apache.org/viewvc/db/ojb/trunk/src/java/org/apache/ojb/odmg/locking/LockManagerOdmgImpl.java?rev=422234&r1=422233&r2=422234&view=diff
==============================================================================
--- db/ojb/trunk/src/java/org/apache/ojb/odmg/locking/LockManagerOdmgImpl.java (original)
+++ db/ojb/trunk/src/java/org/apache/ojb/odmg/locking/LockManagerOdmgImpl.java Sat Jul 15 07:24:07 2006
@@ -47,74 +47,63 @@
         this.lm = lm;
     }
 
-    public boolean readLock(TransactionImpl tx, Object obj)
+    public String getLockInfo()
     {
-        Identity oid = tx.getBroker().serviceIdentity().buildIdentity(obj);
-        return readLock(tx, oid, obj);
+        return lm.getLockInfo();
     }
 
-    public boolean readLock(TransactionImpl tx, Identity oid, Object obj)
+    public boolean readLock(final TransactionImpl tx, final Identity oid)
+    {
+        ClassDescriptor cld = tx.getBroker().getClassDescriptor(oid.getObjectsRealClass());
+        return readLock(tx, oid, cld);
+    }
+
+    public boolean readLock(final TransactionImpl tx, final Identity oid, final ClassDescriptor cld)
     {
-        ClassDescriptor cld = tx.getBroker().getClassDescriptor(tx.getBrokerInternal().getProxyFactory().getRealClass(obj));
         IsolationLevels isolationLevel = cld.getIsolationLevel();
         return lm.readLock(tx.getGUID(), oid, isolationLevel);
     }
 
-    public boolean writeLock(TransactionImpl tx, Object obj)
+    public boolean writeLock(final TransactionImpl tx, final Identity oid)
     {
-        Identity oid = tx.getBroker().serviceIdentity().buildIdentity(obj);
-        return writeLock(tx, oid, obj);
+        ClassDescriptor cld = tx.getBroker().getClassDescriptor(oid.getObjectsRealClass());
+        return writeLock(tx, oid, cld);
     }
 
-    public boolean writeLock(TransactionImpl tx, Identity oid, Object obj)
+    public boolean writeLock(final TransactionImpl tx, final Identity oid, final ClassDescriptor cld)
     {
-        ClassDescriptor cld = tx.getBroker().getClassDescriptor(tx.getBrokerInternal().getProxyFactory().getRealClass(obj));
         IsolationLevels isolationLevel = cld.getIsolationLevel();
         return lm.writeLock(tx.getGUID(), oid, isolationLevel);
     }
 
-    public boolean upgradeLock(TransactionImpl tx, Object obj)
+    public boolean upgradeLock(final TransactionImpl tx, final Identity oid)
     {
-        Identity oid = tx.getBroker().serviceIdentity().buildIdentity(obj);
-        return upgradeLock(tx, oid, obj);
+        ClassDescriptor cld = tx.getBroker().getClassDescriptor(oid.getObjectsRealClass());
+        return upgradeLock(tx, oid, cld);
     }
 
-    public boolean upgradeLock(TransactionImpl tx, Identity oid, Object obj)
+    public boolean upgradeLock(final TransactionImpl tx, final Identity oid, final ClassDescriptor cld)
     {
-        ClassDescriptor cld = tx.getBroker().getClassDescriptor(tx.getBrokerInternal().getProxyFactory().getRealClass(obj));
         IsolationLevels isolationLevel = cld.getIsolationLevel();
         return lm.upgradeLock(tx.getGUID(), oid, isolationLevel);
     }
 
-    public boolean releaseLock(TransactionImpl tx, Object obj)
-    {
-        Identity oid = tx.getBroker().serviceIdentity().buildIdentity(obj);
-        return releaseLock(tx, oid, obj);
-    }
-
-    public boolean releaseLock(TransactionImpl tx, Identity oid, Object obj)
+    public boolean releaseLock(final TransactionImpl tx, final Identity oid)
     {
         return lm.releaseLock(tx.getGUID(), oid);
     }
 
-    public boolean checkRead(TransactionImpl tx, Object obj)
+    public void releaseLocks(TransactionImpl tx)
     {
-        Identity oid = tx.getBroker().serviceIdentity().buildIdentity(obj);
-        return checkRead(tx, oid, obj);
+        lm.releaseLocks(tx.getGUID());
     }
 
-    public boolean checkRead(TransactionImpl tx, Identity oid, Object obj)
+    public boolean checkRead(final TransactionImpl tx, final Identity oid)
     {
         return lm.hasRead(tx.getGUID(), oid);
     }
 
-    public boolean checkWrite(TransactionImpl tx, Object obj)
-    {
-        Identity oid = tx.getBroker().serviceIdentity().buildIdentity(obj);
-        return checkWrite(tx, oid, obj);
-    }
-
-    public boolean checkWrite(TransactionImpl tx, Identity oid, Object obj)
+    public boolean checkWrite(final TransactionImpl tx, final Identity oid)
     {
         return lm.hasWrite(tx.getGUID(), oid);
     }



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