aboutsummaryrefslogtreecommitdiffstats
path: root/poi-scratchpad
diff options
context:
space:
mode:
Diffstat (limited to 'poi-scratchpad')
-rw-r--r--poi-scratchpad/src/main/java/org/apache/poi/hsmf/datatypes/PropertiesChunk.java4
-rw-r--r--poi-scratchpad/src/test/java/org/apache/poi/hsmf/TestFileRead.java3
2 files changed, 3 insertions, 4 deletions
diff --git a/poi-scratchpad/src/main/java/org/apache/poi/hsmf/datatypes/PropertiesChunk.java b/poi-scratchpad/src/main/java/org/apache/poi/hsmf/datatypes/PropertiesChunk.java
index 809411bfb2..cdc146d980 100644
--- a/poi-scratchpad/src/main/java/org/apache/poi/hsmf/datatypes/PropertiesChunk.java
+++ b/poi-scratchpad/src/main/java/org/apache/poi/hsmf/datatypes/PropertiesChunk.java
@@ -255,7 +255,7 @@ public abstract class PropertiesChunk extends Chunk {
// to another chunk which holds the data itself
boolean isPointer = false;
int length = type.getLength();
- if (!type.isFixedLength()) {
+ if (type.isPointer()) {
isPointer = true;
length = 8;
}
@@ -380,7 +380,7 @@ public abstract class PropertiesChunk extends Chunk {
LittleEndian.putUInt(value.getFlags(), out); // readable + writable
MAPIType type = getTypeMapping(value.getActualType());
- if (type.isFixedLength()) {
+ if (type.isFixedLength() && !type.isPointer()) {
// page 11, point 2.1.2
writeFixedLengthValueHeader(out, property, type, value);
} else {
diff --git a/poi-scratchpad/src/test/java/org/apache/poi/hsmf/TestFileRead.java b/poi-scratchpad/src/test/java/org/apache/poi/hsmf/TestFileRead.java
index 21f95be629..71c6807431 100644
--- a/poi-scratchpad/src/test/java/org/apache/poi/hsmf/TestFileRead.java
+++ b/poi-scratchpad/src/test/java/org/apache/poi/hsmf/TestFileRead.java
@@ -12,8 +12,7 @@ public class TestFileRead {
void bug66335() throws IOException {
try (MAPIMessage mapiMessage = new MAPIMessage(
POIDataSamples.getHSMFInstance().getFile("bug66335.msg"))) {
- // 25 is not the right number of properties but it is what the existing code finds
- assertEquals(25, mapiMessage.getMainChunks().getProperties().size());
+ assertEquals(151, mapiMessage.getMainChunks().getProperties().size());
}
}
}