diff options
author | James Ahlborn <jtahlborn@yahoo.com> | 2015-06-17 02:20:58 +0000 |
---|---|---|
committer | James Ahlborn <jtahlborn@yahoo.com> | 2015-06-17 02:20:58 +0000 |
commit | b521c2b020a5afa4dbd8517c554cb022a66dde2f (patch) | |
tree | 72d4b318a48598245fa77ec87ce7e820439b2d36 /src/main | |
parent | c43233278ea5a070889b36a3265c53aba5a4fc22 (diff) | |
download | jackcess-b521c2b020a5afa4dbd8517c554cb022a66dde2f.tar.gz jackcess-b521c2b020a5afa4dbd8517c554cb022a66dde2f.zip |
handle reading null calculated values, fixes #125
git-svn-id: https://svn.code.sf.net/p/jackcess/code/jackcess/trunk@949 f203690c-595d-4dc9-a70b-905162fa7fd2
Diffstat (limited to 'src/main')
-rw-r--r-- | src/main/java/com/healthmarketscience/jackcess/impl/CalculatedColumnUtil.java | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/src/main/java/com/healthmarketscience/jackcess/impl/CalculatedColumnUtil.java b/src/main/java/com/healthmarketscience/jackcess/impl/CalculatedColumnUtil.java index 2b7395a..f3fdc21 100644 --- a/src/main/java/com/healthmarketscience/jackcess/impl/CalculatedColumnUtil.java +++ b/src/main/java/com/healthmarketscience/jackcess/impl/CalculatedColumnUtil.java @@ -139,7 +139,12 @@ class CalculatedColumnUtil @Override public Object read(byte[] data, ByteOrder order) throws IOException { - return super.read(unwrapCalculatedValue(data), order); + data = unwrapCalculatedValue(data); + if((data.length == 0) && !getType().isVariableLength()) { + // apparently "null" values can be written as actual data + return null; + } + return super.read(data, order); } @Override @@ -173,6 +178,9 @@ class CalculatedColumnUtil @Override public Object read(byte[] data, ByteOrder order) throws IOException { data = unwrapCalculatedValue(data); + if(data.length == 0) { + return Boolean.FALSE; + } return ((data[0] != 0) ? Boolean.TRUE : Boolean.FALSE); } @@ -266,6 +274,10 @@ class CalculatedColumnUtil @Override public Object read(byte[] data, ByteOrder order) throws IOException { data = unwrapCalculatedValue(data); + if(data.length == 0) { + // apparently "null" values can be written as actual data + return null; + } return readCalcNumericValue(ByteBuffer.wrap(data).order(order)); } |