]> source.dussan.org Git - poi.git/commitdiff
fixed some wrong nightly assumptions ... (Note to myself, don't rely on ant automatic...
authorAndreas Beeker <kiwiwings@apache.org>
Thu, 24 Sep 2015 05:51:38 +0000 (05:51 +0000)
committerAndreas Beeker <kiwiwings@apache.org>
Thu, 24 Sep 2015 05:51:38 +0000 (05:51 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1704999 13f79535-47bb-0310-9956-ffa450edef68

src/java/org/apache/poi/ddf/EscherBSERecord.java
src/java/org/apache/poi/ddf/EscherBitmapBlip.java
src/java/org/apache/poi/ddf/EscherBlipRecord.java
src/java/org/apache/poi/ddf/EscherClientAnchorRecord.java

index 496feb6fca59a1a873cc431d3ea5509b969f328f..7c69189379ae68f467b7585ab36ea23e059a1aa7 100644 (file)
@@ -43,7 +43,7 @@ public final class EscherBSERecord extends EscherRecord {
 
     private byte field_1_blipTypeWin32;
     private byte field_2_blipTypeMacOS;
-    private byte[] field_3_uid;  // 16 bytes
+    private final byte[] field_3_uid = new byte[16];
     private short field_4_tag;
     private int field_5_size;
     private int field_6_ref;
@@ -54,14 +54,13 @@ public final class EscherBSERecord extends EscherRecord {
     private byte field_11_unused3;
     private EscherBlipRecord field_12_blipRecord;
 
-    private byte[] _remainingData;
+    private byte[] _remainingData = new byte[0];
 
     public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
         int bytesRemaining = readHeader( data, offset );
         int pos = offset + 8;
         field_1_blipTypeWin32 = data[pos];
         field_2_blipTypeMacOS = data[pos + 1];
-        field_3_uid = new byte[16];
         System.arraycopy( data, pos + 2, field_3_uid, 0, 16 );
         field_4_tag = LittleEndian.getShort( data, pos + 18 );
         field_5_size = LittleEndian.getInt( data, pos + 20 );
@@ -183,9 +182,10 @@ public final class EscherBSERecord extends EscherRecord {
      * 16 byte MD4 checksum.
      */
     public void setUid(byte[] uid) {
-        if (uid != null && uid.length == 16) {
-            System.arraycopy(uid, 0, field_3_uid, 0, field_3_uid.length);
-        };
+        if (uid == null || uid.length != 16) {
+            throw new IllegalArgumentException("uid must be byte[16]");
+        }
+        System.arraycopy(uid, 0, field_3_uid, 0, field_3_uid.length);
     }
 
     /**
@@ -308,7 +308,7 @@ public final class EscherBSERecord extends EscherRecord {
      */
     public void setRemainingData(byte[] remainingData) {
         if (remainingData == null) {
-            _remainingData = null;
+            _remainingData = new byte[0];
         } else {
             _remainingData = remainingData.clone();
         }
index e6855d19872b5b1d195b45c81882f8d571f92fbf..43e8ba516a6a43130997b19aa14c88bf97821668 100644 (file)
@@ -30,14 +30,13 @@ public class EscherBitmapBlip extends EscherBlipRecord {
 
     private static final int HEADER_SIZE = 8;
 
-    private byte[] field_1_UID;
+    private final byte[] field_1_UID = new byte[16];
     private byte field_2_marker = (byte) 0xFF;
 
     public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
         int bytesAfterHeader = readHeader( data, offset );
         int pos = offset + HEADER_SIZE;
 
-        field_1_UID = new byte[16];
         System.arraycopy( data, pos, field_1_UID, 0, 16 ); pos += 16;
         field_2_marker = data[pos]; pos++;
 
@@ -75,9 +74,10 @@ public class EscherBitmapBlip extends EscherBlipRecord {
     }
 
     public void setUID( byte[] field_1_UID ) {
-        if (field_1_UID != null && field_1_UID.length == 16) {
-            System.arraycopy(field_1_UID, 0, this.field_1_UID , 0, 16);
+        if (field_1_UID == null || field_1_UID.length != 16) {
+            throw new IllegalArgumentException("field_1_UID must be byte[16]");
         }
+        System.arraycopy(field_1_UID, 0, this.field_1_UID , 0, 16);
     }
 
     public byte getMarker()
index 43c0661ef641273c3969be850245cc3d74267ce7..005cf25fcd30119d58f221b97392ef0f2dc24398 100644 (file)
@@ -71,10 +71,9 @@ public class EscherBlipRecord extends EscherRecord { // TODO - instantiable supe
 
     public void setPictureData(byte[] pictureData) {
         if (pictureData == null) {
-            field_pictureData = null;
-        } else {
-            field_pictureData = pictureData.clone();
+            throw new NullPointerException("picture data can't be null");
         }
+        field_pictureData = pictureData.clone();
     }
 
     public String toString() {
index 4185d6397923bfde5d5b2a43b7bb0f6be5d5ffb0..d39601b964de79dc6d18d89ac78986a89592825d 100644 (file)
@@ -52,7 +52,7 @@ public class EscherClientAnchorRecord
     private short field_7_dx2;
     private short field_8_row2;
     private short field_9_dy2;
-    private byte[] remainingData;
+    private byte[] remainingData = new byte[0];
     private boolean shortRecord = false;
 
     public int fillFields(byte[] data, int offset, EscherRecordFactory recordFactory) {
@@ -335,7 +335,7 @@ public class EscherClientAnchorRecord
      */
     public void setRemainingData( byte[] remainingData ) {
         if (remainingData == null) {
-            this.remainingData = null;
+            this.remainingData = new byte[0];
         } else {
             this.remainingData = remainingData.clone();
         }