Fixup printing record name in case of unknown sid
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1691312 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
e64b72a4e1
commit
aeb0d6abe3
@ -52,9 +52,17 @@ public final class RecordInputStream implements LittleEndianInput {
|
|||||||
public static final class LeftoverDataException extends RuntimeException {
|
public static final class LeftoverDataException extends RuntimeException {
|
||||||
public LeftoverDataException(int sid, int remainingByteCount) {
|
public LeftoverDataException(int sid, int remainingByteCount) {
|
||||||
super("Initialisation of record 0x" + Integer.toHexString(sid).toUpperCase()
|
super("Initialisation of record 0x" + Integer.toHexString(sid).toUpperCase()
|
||||||
+ "(" + RecordFactory.getRecordClass(sid).getSimpleName() + ") left " + remainingByteCount
|
+ "(" + getRecordName(sid) + ") left " + remainingByteCount
|
||||||
+ " bytes remaining still to be read.");
|
+ " bytes remaining still to be read.");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static String getRecordName(int sid) {
|
||||||
|
Class<? extends Record> recordClass = RecordFactory.getRecordClass(sid);
|
||||||
|
if(recordClass == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return recordClass.getSimpleName();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Header {@link LittleEndianInput} facet of the wrapped {@link InputStream} */
|
/** Header {@link LittleEndianInput} facet of the wrapped {@link InputStream} */
|
||||||
|
@ -94,4 +94,12 @@ public final class TestRecordInputStream extends TestCase {
|
|||||||
String actual = in.readString();
|
String actual = in.readString();
|
||||||
assertEquals("Multilingual - \u591A\u8A00\u8A9E", actual);
|
assertEquals("Multilingual - \u591A\u8A00\u8A9E", actual);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testLeftoverDataException() {
|
||||||
|
// just ensure that the exception is created correctly, even with unknown sids
|
||||||
|
new RecordInputStream.LeftoverDataException(1, 200);
|
||||||
|
new RecordInputStream.LeftoverDataException(0, 200);
|
||||||
|
new RecordInputStream.LeftoverDataException(999999999, 200);
|
||||||
|
new RecordInputStream.LeftoverDataException(HeaderRecord.sid, 200);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user