<action dev="jahlborn" type="fix" system="SourceForge2" issue="97">
Ignore invalid column usage map definitions.
</action>
+ <action dev="jahlborn" type="fix">
+ Make reading long value columns more lenient (MEMO/OLE).
+ </action>
</release>
<release version="2.0.0" date="2013-08-26">
<action dev="jahlborn" type="update">
<action dev="jahlborn" type="fix" system="SourceForge2" issue="97">
Ignore invalid column usage map definitions.
</action>
+ <action dev="jahlborn" type="fix">
+ Make reading long value columns more lenient (MEMO/OLE).
+ </action>
</release>
<release version="1.2.14.2" date="2013-08-25">
<action dev="jahlborn" type="fix" system="SourceForge2" issue="96">
// inline long value
def.getInt(); //Skip over lval_dp
def.getInt(); //Skip over unknown
+
+ int rowLen = def.remaining();
+ if(rowLen < length) {
+ // warn the caller, but return whatever we can
+ LOG.warn(getName() + " value may be truncated: expected length " +
+ length + " found " + rowLen);
+ rtn = new byte[rowLen];
+ }
+
def.get(rtn);
} else {
short rowStart = TableImpl.findRowStart(lvalPage, rowNum, getFormat());
short rowEnd = TableImpl.findRowEnd(lvalPage, rowNum, getFormat());
- if((rowEnd - rowStart) != length) {
- throw new IOException("Unexpected lval row length");
+ int rowLen = rowEnd - rowStart;
+ if(rowLen < length) {
+ // warn the caller, but return whatever we can
+ LOG.warn(getName() + " value may be truncated: expected length " +
+ length + " found " + rowLen);
+ rtn = new byte[rowLen];
}
lvalPage.position(rowStart);