From 20d7d78325c0259cb3445c7b41848ab8e7db7b4c Mon Sep 17 00:00:00 2001 From: Tim McCune Date: Sat, 20 Aug 2005 05:46:15 +0000 Subject: [PATCH] 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 --- project.properties | 2 ++ project.xml | 3 ++- src/java/com/healthmarketscience/jackcess/JetFormat.java | 2 +- src/java/com/healthmarketscience/jackcess/Table.java | 8 +++++++- 4 files changed, 12 insertions(+), 3 deletions(-) diff --git a/project.properties b/project.properties index bf4a02b..ef6d4ae 100644 --- a/project.properties +++ b/project.properties @@ -1,3 +1,5 @@ +maven.announcement.mail.server=localhost +maven.announcement.mail.to=jackcess-users@lists.sourceforge.net maven.artifact.legacy=false maven.changes.issue.template=http://sf.net/tracker/index.php?func=detail&aid=%ISSUE%&group_id=134943&atid=731445 maven.compile.compilerargs=-Xlint:all diff --git a/project.xml b/project.xml index 2e26fe5..21b1d48 100644 --- a/project.xml +++ b/project.xml @@ -32,7 +32,7 @@ Tim McCune javajedi - javajedi at users dot sf dot net + javajedi@users.sf.net Health Market Science, Inc. -5 @@ -94,6 +94,7 @@ maven-faq-plugin + maven-changes-plugin maven-javadoc-plugin maven-jxr-plugin maven-jdepend-plugin 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; -- 2.39.5