aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--poi-scratchpad/src/main/java/org/apache/poi/hdgf/chunks/ChunkHeader.java8
-rw-r--r--poi-scratchpad/src/main/java/org/apache/poi/hdgf/exceptions/OldVisioFormatException.java25
-rw-r--r--poi-scratchpad/src/main/java/org/apache/poi/hdgf/pointers/PointerFactory.java8
3 files changed, 33 insertions, 8 deletions
diff --git a/poi-scratchpad/src/main/java/org/apache/poi/hdgf/chunks/ChunkHeader.java b/poi-scratchpad/src/main/java/org/apache/poi/hdgf/chunks/ChunkHeader.java
index 7eec5d36bb..068bc0172f 100644
--- a/poi-scratchpad/src/main/java/org/apache/poi/hdgf/chunks/ChunkHeader.java
+++ b/poi-scratchpad/src/main/java/org/apache/poi/hdgf/chunks/ChunkHeader.java
@@ -14,11 +14,11 @@
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hdgf.chunks;
import java.nio.charset.Charset;
+import org.apache.poi.hdgf.exceptions.OldVisioFormatException;
import org.apache.poi.util.LittleEndian;
/**
@@ -47,7 +47,7 @@ public abstract class ChunkHeader {
} else {
ch = new ChunkHeaderV6();
}
- ch.setType((int)LittleEndian.getUInt(data, offset + 0));
+ ch.setType((int)LittleEndian.getUInt(data, offset));
ch.setId((int)LittleEndian.getUInt(data, offset + 4));
ch.setUnknown1((int)LittleEndian.getUInt(data, offset + 8));
ch.setLength((int)LittleEndian.getUInt(data, offset + 12));
@@ -58,7 +58,7 @@ public abstract class ChunkHeader {
} else if(documentVersion == 5 || documentVersion == 4) {
ChunkHeaderV4V5 ch = new ChunkHeaderV4V5();
- ch.setType(LittleEndian.getShort(data, offset + 0));
+ ch.setType(LittleEndian.getShort(data, offset));
ch.setId(LittleEndian.getShort(data, offset + 2));
ch.setUnknown2(LittleEndian.getUByte(data, offset + 4));
ch.setUnknown3(LittleEndian.getUByte(data, offset + 5));
@@ -67,7 +67,7 @@ public abstract class ChunkHeader {
return ch;
} else {
- throw new IllegalArgumentException("Visio files with versions below 4 are not supported, yours was " + documentVersion);
+ throw new OldVisioFormatException("Visio files with versions below 4 are not supported, yours was " + documentVersion);
}
}
diff --git a/poi-scratchpad/src/main/java/org/apache/poi/hdgf/exceptions/OldVisioFormatException.java b/poi-scratchpad/src/main/java/org/apache/poi/hdgf/exceptions/OldVisioFormatException.java
new file mode 100644
index 0000000000..f8cc0ed34d
--- /dev/null
+++ b/poi-scratchpad/src/main/java/org/apache/poi/hdgf/exceptions/OldVisioFormatException.java
@@ -0,0 +1,25 @@
+/* ====================================================================
+ Licensed to the Apache Software Foundation (ASF) under one or more
+ contributor license agreements. See the NOTICE file distributed with
+ this work for additional information regarding copyright ownership.
+ The ASF licenses this file to You under the Apache License, Version 2.0
+ (the "License"); you may not use this file except in compliance with
+ the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+==================================================================== */
+package org.apache.poi.hdgf.exceptions;
+
+import org.apache.poi.OldFileFormatException;
+
+public class OldVisioFormatException extends OldFileFormatException {
+ public OldVisioFormatException(String s) {
+ super(s);
+ }
+}
diff --git a/poi-scratchpad/src/main/java/org/apache/poi/hdgf/pointers/PointerFactory.java b/poi-scratchpad/src/main/java/org/apache/poi/hdgf/pointers/PointerFactory.java
index 504e242104..35c475b175 100644
--- a/poi-scratchpad/src/main/java/org/apache/poi/hdgf/pointers/PointerFactory.java
+++ b/poi-scratchpad/src/main/java/org/apache/poi/hdgf/pointers/PointerFactory.java
@@ -14,9 +14,9 @@
See the License for the specific language governing permissions and
limitations under the License.
==================================================================== */
-
package org.apache.poi.hdgf.pointers;
+import org.apache.poi.hdgf.exceptions.OldVisioFormatException;
import org.apache.poi.hdgf.streams.PointerContainingStream;
import org.apache.poi.util.IOUtils;
import org.apache.poi.util.LittleEndian;
@@ -43,7 +43,7 @@ public final class PointerFactory {
Pointer p;
if(version >= 6) {
p = new PointerV6();
- p.setType(LittleEndian.getInt(data, offset+0));
+ p.setType(LittleEndian.getInt(data, offset));
p.setAddress((int)LittleEndian.getUInt(data, offset+4));
p.setOffset((int)LittleEndian.getUInt(data, offset+8));
p.setLength((int)LittleEndian.getUInt(data, offset+12));
@@ -52,7 +52,7 @@ public final class PointerFactory {
return p;
} else if(version == 5) {
p = new PointerV5();
- p.setType(LittleEndian.getShort(data, offset+0));
+ p.setType(LittleEndian.getShort(data, offset));
p.setFormat(LittleEndian.getShort(data, offset+2));
p.setAddress((int)LittleEndian.getUInt(data, offset+4));
p.setOffset((int)LittleEndian.getUInt(data, offset+8));
@@ -60,7 +60,7 @@ public final class PointerFactory {
return p;
} else {
- throw new IllegalArgumentException("Visio files with versions below 5 are not supported, yours was " + version);
+ throw new OldVisioFormatException("Visio files with versions below 5 are not supported, yours was " + version);
}
}