Author: nextgens
Date: 2007-04-25 10:22:29 +0000 (Wed, 25 Apr 2007)
New Revision: 12936

Modified:
   trunk/contrib/bdb/README
   trunk/contrib/bdb/dist/build.properties
   trunk/contrib/bdb/src/com/sleepycat/je/JEVersion.java
   trunk/contrib/bdb/src/com/sleepycat/je/Transaction.java
   trunk/contrib/bdb/src/com/sleepycat/je/XAEnvironment.java
   trunk/contrib/bdb/src/com/sleepycat/je/dbi/EnvironmentImpl.java
   trunk/contrib/bdb/src/com/sleepycat/je/log/FileReader.java
   trunk/contrib/bdb/src/com/sleepycat/je/recovery/RecoveryManager.java
   trunk/contrib/bdb/src/com/sleepycat/je/tree/Tree.java
   trunk/contrib/bdb/src/com/sleepycat/je/txn/ThreadLocker.java
   trunk/contrib/bdb/src/com/sleepycat/je/txn/Txn.java
   trunk/contrib/bdb/src/com/sleepycat/persist/model/Entity.java
   trunk/contrib/bdb/test/com/sleepycat/collections/test/XACollectionTest.java
   trunk/contrib/bdb/test/com/sleepycat/je/EnvironmentTest.java
   trunk/contrib/bdb/test/com/sleepycat/je/logversion/LogEntryVersionTest.java
   
trunk/contrib/bdb/test/com/sleepycat/je/logversion/MakeLogEntryVersionData.java
   trunk/contrib/bdb/test/com/sleepycat/je/txn/TwoPCTest.java
Log:
freenet-ext.jar: update the BDB code to 3.2.23;  you can get it from 
http://download.oracle.com/berkeley-db/je-3.2.23.tar.gz ; changelog :  
http://www.oracle.com/technology/documentation/berkeley-db/je/relnotes.html

Modified: trunk/contrib/bdb/README
===================================================================
--- trunk/contrib/bdb/README    2007-04-25 09:43:16 UTC (rev 12935)
+++ trunk/contrib/bdb/README    2007-04-25 10:22:29 UTC (rev 12936)
@@ -1,5 +1,5 @@
-Oracle: Berkeley DB, Java Edition 3.2.21: March 14, 2007
+Oracle: Berkeley DB, Java Edition 3.2.23: April 06, 2007

-This is Berkeley DB, Java Edition, version 3.2.21 from
+This is Berkeley DB, Java Edition, version 3.2.23 from
 Oracle.  To view the release and installation documentation, load
 the distribution file docs/index.html into your web browser.
\ No newline at end of file

Modified: trunk/contrib/bdb/dist/build.properties
===================================================================
--- trunk/contrib/bdb/dist/build.properties     2007-04-25 09:43:16 UTC (rev 
12935)
+++ trunk/contrib/bdb/dist/build.properties     2007-04-25 10:22:29 UTC (rev 
12936)
@@ -1,4 +1,4 @@
-release.version=3.2.21
-release.numeric.version=3.2.21
+release.version=3.2.23
+release.numeric.version=3.2.23
 release.major=3
 release.minor=2

Modified: trunk/contrib/bdb/src/com/sleepycat/je/JEVersion.java
===================================================================
--- trunk/contrib/bdb/src/com/sleepycat/je/JEVersion.java       2007-04-25 
09:43:16 UTC (rev 12935)
+++ trunk/contrib/bdb/src/com/sleepycat/je/JEVersion.java       2007-04-25 
10:22:29 UTC (rev 12936)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2002,2007 Oracle.  All rights reserved.
  *
- * $Id: JEVersion.java,v 1.93.2.7 2007/03/09 21:59:13 mark Exp $
+ * $Id: JEVersion.java,v 1.93.2.9 2007/04/04 14:27:33 cwl Exp $
  */

 package com.sleepycat.je;
@@ -19,7 +19,7 @@
      * the doc templates in the doc_src directory.
      */
     public static final JEVersion CURRENT_VERSION =
-        new JEVersion(3, 2, 21, null);
+        new JEVersion(3, 2, 23, null);

     private int majorNum;
     private int minorNum;

Modified: trunk/contrib/bdb/src/com/sleepycat/je/Transaction.java
===================================================================
--- trunk/contrib/bdb/src/com/sleepycat/je/Transaction.java     2007-04-25 
09:43:16 UTC (rev 12935)
+++ trunk/contrib/bdb/src/com/sleepycat/je/Transaction.java     2007-04-25 
10:22:29 UTC (rev 12936)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2002,2007 Oracle.  All rights reserved.
  *
- * $Id: Transaction.java,v 1.48.2.1 2007/02/01 14:49:42 cwl Exp $
+ * $Id: Transaction.java,v 1.48.2.2 2007/03/28 15:53:44 cwl Exp $
  */

 package com.sleepycat.je;
@@ -116,6 +116,10 @@
         doCommit(Txn.TXN_WRITE_NOSYNC);
     }

+    public boolean getPrepared() {
+       return txn.getPrepared();
+    }
+
     private void doCommit(byte commitType) 
        throws DatabaseException {


Modified: trunk/contrib/bdb/src/com/sleepycat/je/XAEnvironment.java
===================================================================
--- trunk/contrib/bdb/src/com/sleepycat/je/XAEnvironment.java   2007-04-25 
09:43:16 UTC (rev 12935)
+++ trunk/contrib/bdb/src/com/sleepycat/je/XAEnvironment.java   2007-04-25 
10:22:29 UTC (rev 12936)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2002,2007 Oracle.  All rights reserved.
  *
- * $Id: XAEnvironment.java,v 1.8.2.1 2007/02/01 14:49:42 cwl Exp $
+ * $Id: XAEnvironment.java,v 1.8.2.2 2007/03/28 15:53:44 cwl Exp $
  */

 package com.sleepycat.je;
@@ -211,13 +211,22 @@
                throw new XAException
                    ("No transaction found for " + xid + " during prepare.");
            }
-           txn.getTxn().prepare(xid);
+           int ret = txn.getTxn().prepare(xid);

            if (DEBUG) {
-               System.out.println("*** prepare returning XA_OK");
+               System.out.println("*** prepare returning " + ret);
            }

-           return XAResource.XA_OK;
+           /*
+            * If this transaction was R/O, then there were no writes.  We'll
+            * commit it here because the user doesn't need to (and isn't
+            * allowed to either).
+            */
+           if (ret == XAResource.XA_RDONLY) {
+               commit(xid, true);
+           }
+
+           return ret;
        } catch (DatabaseException DE) {
            throwNewXAException(DE);
        }
@@ -367,7 +376,8 @@
                    throw new XAException(XAException.XAER_NOTA);
                }

-               if (txnMgr.getTxnForThread() != null) {
+               if (txnMgr.getTxnForThread() != null ||
+                   txn.getPrepared()) {
                    throw new XAException(XAException.XAER_PROTO);
                }
            } else if (tmResume) {

Modified: trunk/contrib/bdb/src/com/sleepycat/je/dbi/EnvironmentImpl.java
===================================================================
--- trunk/contrib/bdb/src/com/sleepycat/je/dbi/EnvironmentImpl.java     
2007-04-25 09:43:16 UTC (rev 12935)
+++ trunk/contrib/bdb/src/com/sleepycat/je/dbi/EnvironmentImpl.java     
2007-04-25 10:22:29 UTC (rev 12936)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2002,2007 Oracle.  All rights reserved.
  *
- * $Id: EnvironmentImpl.java,v 1.256.2.5 2007/03/07 01:24:36 mark Exp $
+ * $Id: EnvironmentImpl.java,v 1.256.2.6 2007/04/04 18:36:07 cwl Exp $
  */

 package com.sleepycat.je.dbi;
@@ -849,10 +849,12 @@
     }

     public void invalidate(Error e) {
-       savedInvalidatingException = (RunRecoveryException)
-           SAVED_RRE.initCause(e);
-       envState = DbEnvState.INVALID;
-       requestShutdownDaemons();
+       if (SAVED_RRE.getCause() == null) {
+           savedInvalidatingException = (RunRecoveryException)
+               SAVED_RRE.initCause(e);
+           envState = DbEnvState.INVALID;
+           requestShutdownDaemons();
+       }
     }

     /**

Modified: trunk/contrib/bdb/src/com/sleepycat/je/log/FileReader.java
===================================================================
--- trunk/contrib/bdb/src/com/sleepycat/je/log/FileReader.java  2007-04-25 
09:43:16 UTC (rev 12935)
+++ trunk/contrib/bdb/src/com/sleepycat/je/log/FileReader.java  2007-04-25 
10:22:29 UTC (rev 12936)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2002,2007 Oracle.  All rights reserved.
  *
- * $Id: FileReader.java,v 1.99.2.2 2007/03/08 22:32:54 mark Exp $
+ * $Id: FileReader.java,v 1.99.2.3 2007/04/04 14:28:22 cwl Exp $
  */

 package com.sleepycat.je.log;
@@ -856,6 +856,9 @@
            try {
                return buffer.position(newPosition);
            } catch (IllegalArgumentException IAE) {
+               if (newPosition > buffer.capacity()) {
+                   throw IAE;
+               }
                continue;
            }
        }

Modified: trunk/contrib/bdb/src/com/sleepycat/je/recovery/RecoveryManager.java
===================================================================
--- trunk/contrib/bdb/src/com/sleepycat/je/recovery/RecoveryManager.java        
2007-04-25 09:43:16 UTC (rev 12935)
+++ trunk/contrib/bdb/src/com/sleepycat/je/recovery/RecoveryManager.java        
2007-04-25 10:22:29 UTC (rev 12936)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2002,2007 Oracle.  All rights reserved.
  *
- * $Id: RecoveryManager.java,v 1.211.2.2 2007/03/08 22:32:58 mark Exp $
+ * $Id: RecoveryManager.java,v 1.211.2.3 2007/03/28 15:53:44 cwl Exp $
  */

 package com.sleepycat.je.recovery;
@@ -990,6 +990,7 @@
                        Txn preparedTxn = new Txn(env, txnConf, prepareId);
                        preparedTxn.setLockTimeout(0);
                        preparedTxns.put(prepareIdL, preparedTxn);
+                       preparedTxn.setPrepared(true);
                        env.getTxnManager().registerXATxn
                            (reader.getTxnPrepareXid(), preparedTxn, true);
                        Tracer.trace(Level.INFO, env,
@@ -1093,7 +1094,6 @@
                                preparedTxn.lock
                                     (ln.getNodeId(), LockType.WRITE,
                                      false /*noWait*/, db);
-                               preparedTxn.setPrepared(true);
                            }

                             treeLsn = redo(db,

Modified: trunk/contrib/bdb/src/com/sleepycat/je/tree/Tree.java
===================================================================
--- trunk/contrib/bdb/src/com/sleepycat/je/tree/Tree.java       2007-04-25 
09:43:16 UTC (rev 12935)
+++ trunk/contrib/bdb/src/com/sleepycat/je/tree/Tree.java       2007-04-25 
10:22:29 UTC (rev 12936)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2002,2007 Oracle.  All rights reserved.
  *
- * $Id: Tree.java,v 1.418.2.2 2007/03/08 22:33:00 mark Exp $
+ * $Id: Tree.java,v 1.418.2.3 2007/04/04 14:28:59 cwl Exp $
  */

 package com.sleepycat.je.tree;
@@ -1946,7 +1946,7 @@
             } while (!(parent instanceof BIN));

             return child;
-        } catch (Throwable t) {
+        } catch (Exception t) {

             /*
              * In [#14903] we encountered a latch exception below and the
@@ -1963,7 +1963,7 @@
                 if (parent != child) {
                     parent.releaseLatchIfOwner();
                 }
-            } catch (Throwable t2) {
+            } catch (Exception t2) {
                 t2.printStackTrace();
             }


Modified: trunk/contrib/bdb/src/com/sleepycat/je/txn/ThreadLocker.java
===================================================================
--- trunk/contrib/bdb/src/com/sleepycat/je/txn/ThreadLocker.java        
2007-04-25 09:43:16 UTC (rev 12935)
+++ trunk/contrib/bdb/src/com/sleepycat/je/txn/ThreadLocker.java        
2007-04-25 10:22:29 UTC (rev 12936)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2002,2007 Oracle.  All rights reserved.
  *
- * $Id: ThreadLocker.java,v 1.14.2.1 2007/02/01 14:49:53 cwl Exp $
+ * $Id: ThreadLocker.java,v 1.14.2.2 2007/03/28 15:53:44 cwl Exp $
  */

 package com.sleepycat.je.txn;
@@ -34,10 +34,11 @@
         throws DatabaseException {

         if (thread != Thread.currentThread()) {
-            throw new DatabaseException("A per-thread transaction was" +
-                                        " created in " + thread +
-                                        " but used in " +
-                                        Thread.currentThread());
+            throw new DatabaseException
+               ("A per-thread transaction was created in " + thread +
+                " but used in " + Thread.currentThread() +
+                "\nPerhaps you are using a non-Transactional Cursor " +
+                "in multiple threads.");
         }
     }


Modified: trunk/contrib/bdb/src/com/sleepycat/je/txn/Txn.java
===================================================================
--- trunk/contrib/bdb/src/com/sleepycat/je/txn/Txn.java 2007-04-25 09:43:16 UTC 
(rev 12935)
+++ trunk/contrib/bdb/src/com/sleepycat/je/txn/Txn.java 2007-04-25 10:22:29 UTC 
(rev 12936)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2002,2007 Oracle.  All rights reserved.
  *
- * $Id: Txn.java,v 1.148.2.3 2007/03/09 17:37:09 linda Exp $
+ * $Id: Txn.java,v 1.148.2.5 2007/04/04 14:29:22 cwl Exp $
  */

 package com.sleepycat.je.txn;
@@ -244,6 +244,10 @@
         return lastLoggedLsn;
     }

+    public boolean getPrepared() {
+       return (txnState & IS_PREPARED) != 0;
+    }
+
     public void setPrepared(boolean prepared) {
        if (prepared) {
            txnState |= IS_PREPARED;
@@ -321,6 +325,11 @@
                     " prepare failed because there were open cursors.");
            }

+           setPrepared(true);
+           if (writeInfo == null) {
+               return XAResource.XA_RDONLY;
+           }
+
             SingleItemEntry prepareEntry =
                 new SingleItemEntry(LogEntryType.LOG_TXN_PREPARE,
                                     new TxnPrepare(id, xid));
@@ -328,7 +337,6 @@
            LogManager logManager = envImpl.getLogManager();
            logManager.logForceFlush(prepareEntry, true); // sync required
        }
-       setPrepared(true);
        return XAResource.XA_OK;
     }

@@ -504,7 +512,10 @@

             /* May have received a thread interrupt. */
             throw e;
-        } catch (Throwable t) {
+       } catch (Error e) {
+           envImpl.invalidate(e);
+           throw e;
+        } catch (Exception t) {

             try {

@@ -521,7 +532,10 @@
                              !(t instanceof DatabaseException));
                 Tracer.trace(envImpl, "Txn", "commit",
                              "Commit of transaction " + id + " failed", t);
-            } catch (Throwable abortT2) {
+           } catch (Error e) {
+               envImpl.invalidate(e);
+               throw e;
+            } catch (Exception abortT2) {
                 throw new DatabaseException
                     ("Failed while attempting to commit transaction " +
                      id +

Modified: trunk/contrib/bdb/src/com/sleepycat/persist/model/Entity.java
===================================================================
--- trunk/contrib/bdb/src/com/sleepycat/persist/model/Entity.java       
2007-04-25 09:43:16 UTC (rev 12935)
+++ trunk/contrib/bdb/src/com/sleepycat/persist/model/Entity.java       
2007-04-25 10:22:29 UTC (rev 12936)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2002,2007 Oracle.  All rights reserved.
  *
- * $Id: Entity.java,v 1.11.2.1 2007/02/01 14:49:57 cwl Exp $
+ * $Id: Entity.java,v 1.11.2.2 2007/03/30 20:01:14 linda Exp $
  */

 package com.sleepycat.persist.model;
@@ -179,7 +179,7 @@
  *
  * <p><strong>Object Graphs</strong></p>
  *
- * <p>When an entity instance is stored, the graph of objects refereneced via
+ * <p>When an entity instance is stored, the graph of objects referenced via
  * its fields is stored and retrieved as a graph.  In other words, if a single
  * instance is referenced by two or more fields when the entity is stored, the
  * same will be true when the entity is retrieved.</p>

Modified: 
trunk/contrib/bdb/test/com/sleepycat/collections/test/XACollectionTest.java
===================================================================
--- trunk/contrib/bdb/test/com/sleepycat/collections/test/XACollectionTest.java 
2007-04-25 09:43:16 UTC (rev 12935)
+++ trunk/contrib/bdb/test/com/sleepycat/collections/test/XACollectionTest.java 
2007-04-25 10:22:29 UTC (rev 12936)
@@ -3,13 +3,15 @@
  *
  * Copyright (c) 2002,2007 Oracle.  All rights reserved.
  *
- * $Id: XACollectionTest.java,v 1.5.2.1 2007/02/01 14:50:03 cwl Exp $
+ * $Id: XACollectionTest.java,v 1.5.2.2 2007/03/28 15:53:47 cwl Exp $
  */

 package com.sleepycat.collections.test;

 import java.io.File;

+import javax.transaction.xa.XAResource;
+
 import junit.framework.Test;
 import junit.framework.TestSuite;

@@ -100,9 +102,11 @@
                     try {
                         xaEnv.start(xid, 0);
                         worker.doWork();
-                        xaEnv.prepare(xid);
+                        int ret = xaEnv.prepare(xid);
                         xaEnv.end(xid, 0);
-                        xaEnv.commit(xid, false);
+                       if (ret != XAResource.XA_RDONLY) {
+                           xaEnv.commit(xid, false);
+                       }
                         return;
                     } catch (Exception e) {
                         e = ExceptionUnwrapper.unwrap(e);

Modified: trunk/contrib/bdb/test/com/sleepycat/je/EnvironmentTest.java
===================================================================
--- trunk/contrib/bdb/test/com/sleepycat/je/EnvironmentTest.java        
2007-04-25 09:43:16 UTC (rev 12935)
+++ trunk/contrib/bdb/test/com/sleepycat/je/EnvironmentTest.java        
2007-04-25 10:22:29 UTC (rev 12936)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2002,2007 Oracle.  All rights reserved.
  *
- * $Id: EnvironmentTest.java,v 1.187.2.7 2007/03/09 21:59:14 mark Exp $
+ * $Id: EnvironmentTest.java,v 1.187.2.9 2007/04/04 14:27:33 cwl Exp $
  */

 package com.sleepycat.je;
@@ -88,7 +88,7 @@
         throws Throwable {

         try {
-            assertEquals("Checking version", "3.2.21",
+            assertEquals("Checking version", "3.2.23",
                          JEVersion.CURRENT_VERSION.getVersionString());

             EnvironmentConfig envConfig = TestUtils.initEnvConfig();

Modified: 
trunk/contrib/bdb/test/com/sleepycat/je/logversion/LogEntryVersionTest.java
===================================================================
--- trunk/contrib/bdb/test/com/sleepycat/je/logversion/LogEntryVersionTest.java 
2007-04-25 09:43:16 UTC (rev 12935)
+++ trunk/contrib/bdb/test/com/sleepycat/je/logversion/LogEntryVersionTest.java 
2007-04-25 10:22:29 UTC (rev 12936)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2002,2007 Oracle.  All rights reserved.
  *
- * $Id: LogEntryVersionTest.java,v 1.12.2.1 2007/02/01 14:50:15 cwl Exp $
+ * $Id: LogEntryVersionTest.java,v 1.12.2.2 2007/03/31 22:06:14 mark Exp $
  */

 package com.sleepycat.je.logversion;
@@ -148,6 +148,15 @@
         doTest("3.1.25");
     }

+    /**
+     * JE 3.2.22: FileHeader version 5.
+     */
+    public void test_3_2_22()
+        throws DatabaseException, IOException {
+
+        doTest("3.2.22");
+    }
+
     private void doTest(String jeVersion)
         throws DatabaseException, IOException {


Modified: 
trunk/contrib/bdb/test/com/sleepycat/je/logversion/MakeLogEntryVersionData.java
===================================================================
--- 
trunk/contrib/bdb/test/com/sleepycat/je/logversion/MakeLogEntryVersionData.java 
    2007-04-25 09:43:16 UTC (rev 12935)
+++ 
trunk/contrib/bdb/test/com/sleepycat/je/logversion/MakeLogEntryVersionData.java 
    2007-04-25 10:22:29 UTC (rev 12936)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2002,2007 Oracle.  All rights reserved.
  *
- * $Id: MakeLogEntryVersionData.java,v 1.11.2.1 2007/02/01 14:50:15 cwl Exp $
+ * $Id: MakeLogEntryVersionData.java,v 1.11.2.2 2007/03/31 22:06:14 mark Exp $
  */

 package com.sleepycat.je.logversion;
@@ -178,9 +178,19 @@
         }
         db.close();

+        /*
+         * Generate an XA txn Prepare. The transaction must be non-empty in
+         * order to actually log the Prepare.
+         */
        XidImpl xid =
            new XidImpl(1, "MakeLogEntryVersionData".getBytes(), null);
        env.start(xid, XAResource.TMNOFLAGS);
+        /* Re-write the existing {3,0} record. */
+        dbConfig.setReadOnly(false);
+        dbConfig.setTransactional(true);
+        db = env.openDatabase(null, Utils.DB2_NAME, dbConfig);
+        db.put(null, Utils.entry(3), Utils.entry(0));
+        db.close();
        env.prepare(xid);
        env.rollback(xid);


Modified: trunk/contrib/bdb/test/com/sleepycat/je/txn/TwoPCTest.java
===================================================================
--- trunk/contrib/bdb/test/com/sleepycat/je/txn/TwoPCTest.java  2007-04-25 
09:43:16 UTC (rev 12935)
+++ trunk/contrib/bdb/test/com/sleepycat/je/txn/TwoPCTest.java  2007-04-25 
10:22:29 UTC (rev 12936)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 2002,2007 Oracle.  All rights reserved.
  *
- * $Id: TwoPCTest.java,v 1.5.2.1 2007/02/01 14:50:22 cwl Exp $
+ * $Id: TwoPCTest.java,v 1.5.2.2 2007/03/28 15:53:50 cwl Exp $
  */

 package com.sleepycat.je.txn;
@@ -11,6 +11,8 @@
 import java.io.File;
 import java.io.IOException;

+import javax.transaction.xa.XAResource;
+
 import junit.framework.TestCase;

 import com.sleepycat.je.Database;
@@ -85,6 +87,23 @@
     }

     /**
+     * Basic readonly-prepare.
+     */
+    public void testROPrepare()
+        throws Throwable {
+
+       try {
+           Transaction txn = env.beginTransaction(null, null);
+           XidImpl xid = new XidImpl(1, "TwoPCTest1".getBytes(), null);
+           env.setXATransaction(xid, txn);
+
+           assertEquals(XAResource.XA_RDONLY, env.prepare(xid));
+       } catch (Exception E) {
+           System.out.println("caught " + E);
+       }
+    }
+
+    /**
      * Test calling prepare twice (should throw exception).
      */
     public void testTwicePreparedTransaction()


Reply via email to