// 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;
}
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 {
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());
}
}
}