You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-commits@db.apache.org by kr...@apache.org on 2011/05/26 11:36:43 UTC

svn commit: r1127843 - in /db/derby/code/branches/10.7: ./ java/engine/org/apache/derby/impl/io/vfmem/BlockedByteArray.java

Author: kristwaa
Date: Thu May 26 09:36:43 2011
New Revision: 1127843

URL: http://svn.apache.org/viewvc?rev=1127843&view=rev
Log:
DERBY-5098: embedded/in-memory: SQLNonTransientConnectionException: No current connection due to invalid page format

Merged fix from trunk (r1103681,1103718).

Modified:
    db/derby/code/branches/10.7/   (props changed)
    db/derby/code/branches/10.7/java/engine/org/apache/derby/impl/io/vfmem/BlockedByteArray.java

Propchange: db/derby/code/branches/10.7/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Thu May 26 09:36:43 2011
@@ -1 +1 @@
-/db/derby/code/trunk:1035603,1036769,1038514,1038813,1039084,1039268,1040658,1041338,1043227,1043389,1044096,1051026,1053724,1055169,1059888,1060480,1062096,1063809,1065061,1066290,1067250,1067357,1069661,1071463,1071886,1076387,1078461,1078693,1081455,1085078,1091000,1097247
+/db/derby/code/trunk:1035603,1036769,1038514,1038813,1039084,1039268,1040658,1041338,1043227,1043389,1044096,1051026,1053724,1055169,1059888,1060480,1062096,1063809,1065061,1066290,1067250,1067357,1069661,1071463,1071886,1076387,1078461,1078693,1081455,1085078,1091000,1097247,1103681,1103718

Modified: db/derby/code/branches/10.7/java/engine/org/apache/derby/impl/io/vfmem/BlockedByteArray.java
URL: http://svn.apache.org/viewvc/db/derby/code/branches/10.7/java/engine/org/apache/derby/impl/io/vfmem/BlockedByteArray.java?rev=1127843&r1=1127842&r2=1127843&view=diff
==============================================================================
--- db/derby/code/branches/10.7/java/engine/org/apache/derby/impl/io/vfmem/BlockedByteArray.java (original)
+++ db/derby/code/branches/10.7/java/engine/org/apache/derby/impl/io/vfmem/BlockedByteArray.java Thu May 26 09:36:43 2011
@@ -143,7 +143,7 @@ public class BlockedByteArray {
         if (blockSize == 0) {
             checkBlockSize((int)Math.min(Integer.MAX_VALUE, newLength));
         }
-        final long currentCapacity = allocatedBlocks * blockSize;
+        final long currentCapacity = (long)allocatedBlocks * blockSize;
         if (newLength > currentCapacity) {
             // Allocate more blocks.
             increaseCapacity(newLength);
@@ -187,9 +187,7 @@ public class BlockedByteArray {
             throw new ArrayIndexOutOfBoundsException(len);
         }
         // Increase the capacity if required.
-        if (pos + len >= allocatedBlocks * blockSize) {
-            increaseCapacity(pos + len);
-        }
+        increaseCapacity(pos + len);
         // Calculate the block number and the index within this block.
         int block = (int)(pos / blockSize);
         int index = (int)(pos % blockSize);
@@ -226,10 +224,7 @@ public class BlockedByteArray {
             checkBlockSize(0);
         }
         // Increase the capacity if required.
-        if (pos >= allocatedBlocks * blockSize) {
-            increaseCapacity(pos);
-        }
-
+        increaseCapacity(pos);
         // Calculate the block number and the index within this block.
         int block = (int)(pos / blockSize);
         int index = (int)(pos % blockSize);
@@ -301,7 +296,7 @@ public class BlockedByteArray {
             SanityManager.ASSERT(blockSize > 0, "Invalid/unset block size");
         }
         // Safe-guard to avoid overwriting existing data.
-        if (lastIndex < allocatedBlocks * blockSize) {
+        if (lastIndex < (long)allocatedBlocks * blockSize) {
             return;
         }
         // Calculate required number of blocks, and create those lacking.