aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTim McCune <javajedi@users.sf.net>2005-08-20 05:46:15 +0000
committerTim McCune <javajedi@users.sf.net>2005-08-20 05:46:15 +0000
commit20d7d78325c0259cb3445c7b41848ab8e7db7b4c (patch)
tree7045fabefbb48c7c091a41c6cbecf17d456ac522 /src
parent37a4da64ca2d69df87103627d8e6bf86b522367d (diff)
downloadjackcess-20d7d78325c0259cb3445c7b41848ab8e7db7b4c.tar.gz
jackcess-20d7d78325c0259cb3445c7b41848ab8e7db7b4c.zip
Fixed bug 1261536.
Skip overflow rows (need to figure out how to read them, but at least it no longer throws an exception.) Fixed bad index offset for table definition. Index count is repeated, but the 2nd one is the correct one to read, not the first. Added changes report to site. git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@22 f203690c-595d-4dc9-a70b-905162fa7fd2
Diffstat (limited to 'src')
-rw-r--r--src/java/com/healthmarketscience/jackcess/JetFormat.java2
-rw-r--r--src/java/com/healthmarketscience/jackcess/Table.java8
2 files changed, 8 insertions, 2 deletions
diff --git a/src/java/com/healthmarketscience/jackcess/JetFormat.java b/src/java/com/healthmarketscience/jackcess/JetFormat.java
index 561e417..d6925b6 100644
--- a/src/java/com/healthmarketscience/jackcess/JetFormat.java
+++ b/src/java/com/healthmarketscience/jackcess/JetFormat.java
@@ -251,7 +251,7 @@ public abstract class JetFormat {
protected int defineOffsetNumRows() { return 16; }
protected int defineOffsetTableType() { return 40; }
protected int defineOffsetNumCols() { return 45; }
- protected int defineOffsetNumIndexes() { return 47; }
+ protected int defineOffsetNumIndexes() { return 51; }
protected int defineOffsetOwnedPages() { return 55; }
protected int defineOffsetFreeSpacePages() { return 59; }
protected int defineOffsetIndexDefBlock() { return 63; }
diff --git a/src/java/com/healthmarketscience/jackcess/Table.java b/src/java/com/healthmarketscience/jackcess/Table.java
index f9f7f1f..9ac791b 100644
--- a/src/java/com/healthmarketscience/jackcess/Table.java
+++ b/src/java/com/healthmarketscience/jackcess/Table.java
@@ -243,8 +243,14 @@ public class Table {
if (_rowStart < 0) {
// Deleted row. Skip.
return positionAtNextRow();
+ } else if ((_rowStart & 0x4000) > 0) {
+ // Overflow page.
+ // FIXME - Currently skipping this. Need to figure out how to read it.
+ _buffer.position(_rowStart - 0x4000);
+ int overflow = _buffer.getInt();
+ _lastRowStart -= 4;
+ return positionAtNextRow();
} else {
- // XXX - Handle overflow pages.
_buffer.position(_rowStart);
_buffer.limit(_lastRowStart);
_lastRowStart = _rowStart;