[bug-66335] apply rest of fix

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1905062 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
PJ Fanning 2022-11-04 09:13:05 +00:00
parent c4a0266cb3
commit c838c6cd6c
2 changed files with 3 additions and 4 deletions

View File

@ -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 {

View File

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