poi-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From kiwiwi...@apache.org
Subject svn commit: r1704964 - in /poi/trunk/src: java/org/apache/poi/ddf/ java/org/apache/poi/poifs/filesystem/ ooxml/java/org/apache/poi/openxml4j/opc/internal/ ooxml/java/org/apache/poi/openxml4j/opc/internal/signature/ ooxml/java/org/apache/poi/openxml4j/o...
Date Wed, 23 Sep 2015 23:22:47 GMT
Author: kiwiwings
Date: Wed Sep 23 23:22:46 2015
New Revision: 1704964

URL: http://svn.apache.org/viewvc?rev=1704964&view=rev
Log:
- a few findbugs/sonar fixes
- removed obsolete openxml4j signature classes

Removed:
    poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/signature/
    poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/signature/
Modified:
    poi/trunk/src/java/org/apache/poi/ddf/EscherBSERecord.java
    poi/trunk/src/java/org/apache/poi/ddf/EscherBitmapBlip.java
    poi/trunk/src/java/org/apache/poi/ddf/EscherBlipRecord.java
    poi/trunk/src/java/org/apache/poi/ddf/EscherClientAnchorRecord.java
    poi/trunk/src/java/org/apache/poi/poifs/filesystem/DocumentInputStream.java
    poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/ZipContentTypeManager.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Comment2000.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/CurrentUserAtom.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExEmbed.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/RecordContainer.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TextRulerAtom.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFFreeformShape.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSheet.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSimpleShape.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlide.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShow.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowEncrypted.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFTextParagraph.java

Modified: poi/trunk/src/java/org/apache/poi/ddf/EscherBSERecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/EscherBSERecord.java?rev=1704964&r1=1704963&r2=1704964&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ddf/EscherBSERecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/ddf/EscherBSERecord.java Wed Sep 23 23:22:46 2015
@@ -61,7 +61,8 @@ public final class EscherBSERecord exten
         int pos = offset + 8;
         field_1_blipTypeWin32 = data[pos];
         field_2_blipTypeMacOS = data[pos + 1];
-        System.arraycopy( data, pos + 2, field_3_uid = new byte[16], 0, 16 );
+        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 );
         field_6_ref = LittleEndian.getInt( data, pos + 24 );
@@ -90,12 +91,12 @@ public final class EscherBSERecord exten
     public int serialize(int offset, byte[] data, EscherSerializationListener listener) {
         listener.beforeRecordSerialize( offset, getRecordId(), this );
 
-        if (_remainingData == null)
+        if (_remainingData == null) {
             _remainingData = new byte[0];
+        }
 
         LittleEndian.putShort( data, offset, getOptions() );
         LittleEndian.putShort( data, offset + 2, getRecordId() );
-        if (_remainingData == null) _remainingData = new byte[0];
         int blipSize = field_12_blipRecord == null ? 0 : field_12_blipRecord.getRecordSize();
         int remainingBytes = _remainingData.length + 36 + blipSize;
         LittleEndian.putInt( data, offset + 4, remainingBytes );
@@ -117,8 +118,6 @@ public final class EscherBSERecord exten
         {
             bytesWritten = field_12_blipRecord.serialize( offset + 44, data, new NullEscherSerializationListener()
);
         }
-        if (_remainingData == null)
-            _remainingData = new byte[0];
         System.arraycopy( _remainingData, 0, data, offset + 44 + bytesWritten, _remainingData.length
);
         int pos = offset + 8 + 36 + _remainingData.length + bytesWritten;
 
@@ -184,7 +183,9 @@ public final class EscherBSERecord exten
      * 16 byte MD4 checksum.
      */
     public void setUid(byte[] uid) {
-        field_3_uid = uid;
+        if (uid != null && uid.length == 16) {
+            System.arraycopy(uid, 0, field_3_uid, 0, field_3_uid.length);
+        };
     }
 
     /**
@@ -306,7 +307,11 @@ public final class EscherBSERecord exten
      * Any remaining data in this record.
      */
     public void setRemainingData(byte[] remainingData) {
-        _remainingData = remainingData;
+        if (remainingData == null) {
+            _remainingData = null;
+        } else {
+            _remainingData = remainingData.clone();
+        }
     }
 
     public String toString() {

Modified: poi/trunk/src/java/org/apache/poi/ddf/EscherBitmapBlip.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/EscherBitmapBlip.java?rev=1704964&r1=1704963&r2=1704964&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ddf/EscherBitmapBlip.java (original)
+++ poi/trunk/src/java/org/apache/poi/ddf/EscherBitmapBlip.java Wed Sep 23 23:22:46 2015
@@ -74,9 +74,10 @@ public class EscherBitmapBlip extends Es
         return field_1_UID;
     }
 
-    public void setUID( byte[] field_1_UID )
-    {
-        this.field_1_UID = field_1_UID;
+    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);
+        }
     }
 
     public byte getMarker()

Modified: poi/trunk/src/java/org/apache/poi/ddf/EscherBlipRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/EscherBlipRecord.java?rev=1704964&r1=1704963&r2=1704964&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ddf/EscherBlipRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/ddf/EscherBlipRecord.java Wed Sep 23 23:22:46 2015
@@ -70,7 +70,11 @@ public class EscherBlipRecord extends Es
     }
 
     public void setPictureData(byte[] pictureData) {
-        field_pictureData = pictureData;
+        if (pictureData == null) {
+            field_pictureData = null;
+        } else {
+            field_pictureData = pictureData.clone();
+        }
     }
 
     public String toString() {

Modified: poi/trunk/src/java/org/apache/poi/ddf/EscherClientAnchorRecord.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ddf/EscherClientAnchorRecord.java?rev=1704964&r1=1704963&r2=1704964&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ddf/EscherClientAnchorRecord.java (original)
+++ poi/trunk/src/java/org/apache/poi/ddf/EscherClientAnchorRecord.java Wed Sep 23 23:22:46
2015
@@ -333,8 +333,11 @@ public class EscherClientAnchorRecord
     /**
      * Any remaining data in the record
      */
-    public void setRemainingData( byte[] remainingData )
-    {
-        this.remainingData = remainingData;
+    public void setRemainingData( byte[] remainingData ) {
+        if (remainingData == null) {
+            this.remainingData = null;
+        } else {
+            this.remainingData = remainingData.clone();
+        }
     }
 }

Modified: poi/trunk/src/java/org/apache/poi/poifs/filesystem/DocumentInputStream.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/filesystem/DocumentInputStream.java?rev=1704964&r1=1704963&r2=1704964&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/poifs/filesystem/DocumentInputStream.java (original)
+++ poi/trunk/src/java/org/apache/poi/poifs/filesystem/DocumentInputStream.java Wed Sep 23
23:22:46 2015
@@ -85,14 +85,17 @@ public class DocumentInputStream extends
       delegate = new NDocumentInputStream(document);
    }
 
+    @Override
 	public int available() {
 	   return delegate.available();
 	}
 
+    @Override
 	public void close() {
 	   delegate.close();
 	}
 
+    @Override
 	public void mark(int ignoredReadlimit) {
 		delegate.mark(ignoredReadlimit);
 	}
@@ -102,18 +105,22 @@ public class DocumentInputStream extends
 	 * 
 	 * @return <code>true</code> always
 	 */
+    @Override
 	public boolean markSupported() {
 		return true;
 	}
 
+    @Override
 	public int read() throws IOException {
 	   return delegate.read();
 	}
 
+	@Override
 	public int read(byte[] b) throws IOException {
 		return read(b, 0, b.length);
 	}
 
+    @Override
 	public int read(byte[] b, int off, int len) throws IOException {
 	   return delegate.read(b, off, len);
 	}
@@ -123,46 +130,57 @@ public class DocumentInputStream extends
 	 * last called on this input stream. If mark() has not been called this
 	 * method repositions the stream to its beginning.
 	 */
+    @Override
 	public void reset() {
 	   delegate.reset();
 	}
 
+    @Override
 	public long skip(long n) throws IOException {
 	   return delegate.skip(n);
 	}
 
+    @Override
 	public byte readByte() {
 	   return delegate.readByte();
 	}
 
+    @Override
 	public double readDouble() {
 	   return delegate.readDouble();
 	}
 
+    @Override
 	public short readShort() {
 		return (short) readUShort();
 	}
 
-   public void readFully(byte[] buf) {
-      readFully(buf, 0, buf.length);
-   }
+    @Override
+    public void readFully(byte[] buf) {
+        readFully(buf, 0, buf.length);
+    }
 
+    @Override
 	public void readFully(byte[] buf, int off, int len) {
 	   delegate.readFully(buf, off, len);
 	}
 
+    @Override
 	public long readLong() {
 	   return delegate.readLong();
 	}
 
+    @Override
 	public int readInt() {
 	   return delegate.readInt();
 	}
 
+    @Override
 	public int readUShort() {
 	   return delegate.readUShort();
 	}
 
+    @Override
 	public int readUByte() {
 	   return delegate.readUByte();
 	}

Modified: poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/ZipContentTypeManager.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/ZipContentTypeManager.java?rev=1704964&r1=1704963&r2=1704964&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/ZipContentTypeManager.java
(original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/openxml4j/opc/internal/ZipContentTypeManager.java
Wed Sep 23 23:22:46 2015
@@ -54,7 +54,8 @@ public class ZipContentTypeManager exten
 		super(in, pkg);
 	}
 
-	@Override
+	@SuppressWarnings("resource")
+    @Override
 	public boolean saveImpl(Document content, OutputStream out) {
 		ZipOutputStream zos = null;
 		if (out instanceof ZipOutputStream)

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Comment2000.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Comment2000.java?rev=1704964&r1=1704963&r2=1704964&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Comment2000.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/Comment2000.java Wed Sep 23 23:22:46
2015
@@ -124,6 +124,7 @@ public final class Comment2000 extends R
                     case 0: authorRecord = cs; break;
                     case 1: commentRecord = cs; break;
                     case 2: authorInitialsRecord = cs; break;
+                    default: break;
                 }
             } else if (r instanceof Comment2000Atom){
                 commentAtom = (Comment2000Atom)r;

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/CurrentUserAtom.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/CurrentUserAtom.java?rev=1704964&r1=1704963&r2=1704964&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/CurrentUserAtom.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/CurrentUserAtom.java Wed Sep 23
23:22:46 2015
@@ -133,10 +133,17 @@ public class CurrentUserAtom
 		}
 		
 		// Grab the contents
-		_contents = new byte[docProps.getSize()];
+		int len = docProps.getSize();
+		_contents = new byte[len];
 		InputStream in = dir.createDocumentInputStream("Current User");
-		in.read(_contents);
+		int readLen = in.read(_contents);
+		in.close();
 
+        if (len != readLen) {
+            throw new IOException("Current User input stream ended prematurely - expected
"+len+" bytes - received "+readLen+" bytes");
+        }
+		
+		
 		// See how long it is. If it's under 28 bytes long, we can't
 		//  read it
 		if(_contents.length < 28) {

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExEmbed.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExEmbed.java?rev=1704964&r1=1704963&r2=1704964&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExEmbed.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/ExEmbed.java Wed Sep 23 23:22:46
2015
@@ -113,6 +113,7 @@ public class ExEmbed extends RecordConta
                     case 0x1: menuName = cs; break;
                     case 0x2: progId = cs; break;
                     case 0x3: clipboardName = cs; break;
+                    default: break;
                 }
             }
         }

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/RecordContainer.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/RecordContainer.java?rev=1704964&r1=1704963&r2=1704964&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/RecordContainer.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/RecordContainer.java Wed Sep 23
23:22:46 2015
@@ -36,7 +36,6 @@ import java.util.ArrayList;
 public abstract class RecordContainer extends Record
 {
 	protected Record[] _children;
-	private Boolean changingChildRecordsLock = Boolean.TRUE;
 
 	/**
 	 * Return any children
@@ -58,14 +57,12 @@ public abstract class RecordContainer ex
 	 * Finds the location of the given child record
 	 */
 	private int findChildLocation(Record child) {
-		// Synchronized as we don't want things changing
-		//  as we're doing our search
-		synchronized(changingChildRecordsLock) {
-			for(int i=0; i<_children.length; i++) {
-				if(_children[i].equals(child)) {
-					return i;
-				}
+	    int i=0;
+		for(Record r : _children) {
+			if (r.equals(child)) {
+				return i;
 			}
+			i++;
 		}
 		return -1;
 	}
@@ -75,14 +72,12 @@ public abstract class RecordContainer ex
 	 * @param newChild The child record to add
 	 */
 	private void appendChild(Record newChild) {
-		synchronized(changingChildRecordsLock) {
-			// Copy over, and pop the child in at the end
-			Record[] nc = new Record[(_children.length + 1)];
-			System.arraycopy(_children, 0, nc, 0, _children.length);
-			// Switch the arrays
-			nc[_children.length] = newChild;
-			_children = nc;
-		}
+		// Copy over, and pop the child in at the end
+		Record[] nc = new Record[(_children.length + 1)];
+		System.arraycopy(_children, 0, nc, 0, _children.length);
+		// Switch the arrays
+		nc[_children.length] = newChild;
+		_children = nc;
 	}
 
 	/**
@@ -92,18 +87,15 @@ public abstract class RecordContainer ex
 	 * @param position
 	 */
 	private void addChildAt(Record newChild, int position) {
-		synchronized(changingChildRecordsLock) {
-			// Firstly, have the child added in at the end
-			appendChild(newChild);
+		// Firstly, have the child added in at the end
+		appendChild(newChild);
 
-			// Now, have them moved to the right place
-			moveChildRecords( (_children.length-1), position, 1 );
-		}
+		// Now, have them moved to the right place
+		moveChildRecords( (_children.length-1), position, 1 );
 	}
 
 	/**
-	 * Moves <i>number</i> child records from <i>oldLoc</i>
-	 *  to <i>newLoc</i>. Caller must have the changingChildRecordsLock
+	 * Moves {@code number} child records from {@code oldLoc} to {@code newLoc}. 
 	 * @param oldLoc the current location of the records to move
 	 * @param newLoc the new location for the records
 	 * @param number the number of records to move
@@ -162,9 +154,7 @@ public abstract class RecordContainer ex
 	 * Add a new child record onto a record's list of children.
 	 */
 	public void appendChildRecord(Record newChild) {
-		synchronized(changingChildRecordsLock) {
-			appendChild(newChild);
-		}
+		appendChild(newChild);
 	}
 
 	/**
@@ -173,16 +163,14 @@ public abstract class RecordContainer ex
 	 * @param after
 	 */
 	public void addChildAfter(Record newChild, Record after) {
-		synchronized(changingChildRecordsLock) {
-			// Decide where we're going to put it
-			int loc = findChildLocation(after);
-			if(loc == -1) {
-				throw new IllegalArgumentException("Asked to add a new child after another record, but
that record wasn't one of our children!");
-			}
-
-			// Add one place after the supplied record
-			addChildAt(newChild, loc+1);
+		// Decide where we're going to put it
+		int loc = findChildLocation(after);
+		if(loc == -1) {
+			throw new IllegalArgumentException("Asked to add a new child after another record, but
that record wasn't one of our children!");
 		}
+
+		// Add one place after the supplied record
+		addChildAt(newChild, loc+1);
 	}
 
 	/**
@@ -191,16 +179,14 @@ public abstract class RecordContainer ex
 	 * @param before
 	 */
 	public void addChildBefore(Record newChild, Record before) {
-		synchronized(changingChildRecordsLock) {
-			// Decide where we're going to put it
-			int loc = findChildLocation(before);
-			if(loc == -1) {
-				throw new IllegalArgumentException("Asked to add a new child before another record, but
that record wasn't one of our children!");
-			}
-
-			// Add at the place of the supplied record
-			addChildAt(newChild, loc);
+		// Decide where we're going to put it
+		int loc = findChildLocation(before);
+		if(loc == -1) {
+			throw new IllegalArgumentException("Asked to add a new child before another record, but
that record wasn't one of our children!");
 		}
+
+		// Add at the place of the supplied record
+		addChildAt(newChild, loc);
 	}
 
 	/**
@@ -216,22 +202,20 @@ public abstract class RecordContainer ex
 	public void moveChildrenBefore(Record firstChild, int number, Record before) {
 		if(number < 1) { return; }
 
-		synchronized(changingChildRecordsLock) {
-			// Decide where we're going to put them
-			int newLoc = findChildLocation(before);
-			if(newLoc == -1) {
-				throw new IllegalArgumentException("Asked to move children before another record, but
that record wasn't one of our children!");
-			}
-
-			// Figure out where they are now
-			int oldLoc = findChildLocation(firstChild);
-			if(oldLoc == -1) {
-				throw new IllegalArgumentException("Asked to move a record that wasn't a child!");
-			}
+		// Decide where we're going to put them
+		int newLoc = findChildLocation(before);
+		if(newLoc == -1) {
+			throw new IllegalArgumentException("Asked to move children before another record, but
that record wasn't one of our children!");
+		}
 
-			// Actually move
-			moveChildRecords(oldLoc, newLoc, number);
+		// Figure out where they are now
+		int oldLoc = findChildLocation(firstChild);
+		if(oldLoc == -1) {
+			throw new IllegalArgumentException("Asked to move a record that wasn't a child!");
 		}
+
+		// Actually move
+		moveChildRecords(oldLoc, newLoc, number);
 	}
 
 	/**
@@ -239,25 +223,22 @@ public abstract class RecordContainer ex
 	 */
 	public void moveChildrenAfter(Record firstChild, int number, Record after) {
 		if(number < 1) { return; }
-
-		synchronized(changingChildRecordsLock) {
-			// Decide where we're going to put them
-			int newLoc = findChildLocation(after);
-			if(newLoc == -1) {
-				throw new IllegalArgumentException("Asked to move children before another record, but
that record wasn't one of our children!");
-			}
-			// We actually want after this though
-			newLoc++;
-
-			// Figure out where they are now
-			int oldLoc = findChildLocation(firstChild);
-			if(oldLoc == -1) {
-				throw new IllegalArgumentException("Asked to move a record that wasn't a child!");
-			}
-
-			// Actually move
-			moveChildRecords(oldLoc, newLoc, number);
+		// Decide where we're going to put them
+		int newLoc = findChildLocation(after);
+		if(newLoc == -1) {
+			throw new IllegalArgumentException("Asked to move children before another record, but
that record wasn't one of our children!");
+		}
+		// We actually want after this though
+		newLoc++;
+
+		// Figure out where they are now
+		int oldLoc = findChildLocation(firstChild);
+		if(oldLoc == -1) {
+			throw new IllegalArgumentException("Asked to move a record that wasn't a child!");
 		}
+
+		// Actually move
+		moveChildRecords(oldLoc, newLoc, number);
 	}
 
     /**

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TextRulerAtom.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TextRulerAtom.java?rev=1704964&r1=1704963&r2=1704964&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TextRulerAtom.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/record/TextRulerAtom.java Wed Sep 23
23:22:46 2015
@@ -149,6 +149,8 @@ public final class TextRulerAtom extends
                         val = LittleEndian.getShort(_data, pos); pos += 2;
                         textOffsets[bits[i]-8] = val;
                         break;
+                    default:
+                        break;
                 }
             }
         }

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFFreeformShape.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFFreeformShape.java?rev=1704964&r1=1704963&r2=1704964&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFFreeformShape.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFFreeformShape.java Wed
Sep 23 23:22:46 2015
@@ -133,6 +133,9 @@ public final class HSLFFreeformShape ext
                     isClosed = true;
                     numPoints++;
                     break;
+                default:
+                    logger.log(POILogger.WARN, "Ignoring invalid segment type "+type);
+                    break;
             }
 
             it.next();

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSheet.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSheet.java?rev=1704964&r1=1704963&r2=1704964&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSheet.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSheet.java Wed Sep 23 23:22:46
2015
@@ -319,7 +319,7 @@ public abstract class HSLFSheet implemen
         for (HSLFShape shape : getShapes()) {
             if(shape instanceof HSLFTextShape){
                 HSLFTextShape tx = (HSLFTextShape)shape;
-                if (tx != null && tx.getRunType() == type) {
+                if (tx.getRunType() == type) {
                     return tx;
                 }
             }

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSimpleShape.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSimpleShape.java?rev=1704964&r1=1704963&r2=1704964&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSimpleShape.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSimpleShape.java Wed Sep
23 23:22:46 2015
@@ -129,7 +129,7 @@ public abstract class HSLFSimpleShape ex
         } else {
             int rgb = new Color(color.getBlue(), color.getGreen(), color.getRed(), 0).getRGB();
             setEscherProperty(opt, EscherProperties.LINESTYLE__COLOR, rgb);
-            setEscherProperty(opt, EscherProperties.LINESTYLE__NOLINEDRAWDASH, color == null
? 0x180010 : 0x180018);
+            setEscherProperty(opt, EscherProperties.LINESTYLE__NOLINEDRAWDASH, 0x180018);
         }
     }
 
@@ -332,6 +332,9 @@ public abstract class HSLFSimpleShape ex
                 infoAtom.setJump(InteractiveInfoAtom.JUMP_NONE);
                 infoAtom.setHyperlinkType(InteractiveInfoAtom.LINK_SlideNumber);
                 break;
+            default:
+                logger.log(POILogger.WARN, "Ignore unknown hyperlink type : "+link.getTitle());
+                break;
         }
 
         infoAtom.setHyperlinkID(link.getId());

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlide.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlide.java?rev=1704964&r1=1704963&r2=1704964&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlide.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlide.java Wed Sep 23 23:22:46
2015
@@ -180,6 +180,8 @@ public final class HSLFSlide extends HSL
                 case EscherContainerRecord.SP_CONTAINER:
                     spr = c.getChildById(EscherSpRecord.RECORD_ID);
                     break;
+                default:
+                    break;
             }
             if(spr != null) spr.setShapeId(allocateShapeId());
         }

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShow.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShow.java?rev=1704964&r1=1704963&r2=1704964&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShow.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShow.java Wed Sep
23 23:22:46 2015
@@ -659,7 +659,7 @@ public final class HSLFSlideShow impleme
 
 		// if the removed slide had notes - remove references to them too
 
-        int notesId = (removedSlide != null) ? removedSlide.getSlideRecord().getSlideAtom().getNotesID()
: 0;
+        int notesId = removedSlide.getSlideRecord().getSlideAtom().getNotesID();
 		if (notesId != 0) {
 			SlideListWithText nslwt = _documentRecord.getNotesSlideListWithText();
 			records = new ArrayList<Record>();

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowEncrypted.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowEncrypted.java?rev=1704964&r1=1704963&r2=1704964&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowEncrypted.java
(original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowEncrypted.java
Wed Sep 23 23:22:46 2015
@@ -38,7 +38,6 @@ import org.apache.poi.hslf.record.UserEd
 import org.apache.poi.hssf.record.crypto.Biff8EncryptionKey;
 import org.apache.poi.poifs.crypt.Decryptor;
 import org.apache.poi.poifs.crypt.EncryptionInfo;
-import org.apache.poi.poifs.crypt.Encryptor;
 import org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIDecryptor;
 import org.apache.poi.poifs.crypt.cryptoapi.CryptoAPIEncryptor;
 import org.apache.poi.util.BitField;
@@ -95,8 +94,8 @@ public class HSLFSlideShowEncrypted {
         }
         assert(r instanceof DocumentEncryptionAtom);
         this.dea = (DocumentEncryptionAtom)r;
+        decryptInit();
         
-        CryptoAPIDecryptor dec = (CryptoAPIDecryptor)dea.getEncryptionInfo().getDecryptor();
         String pass = Biff8EncryptionKey.getCurrentUserPassword();
         if(!dec.verifyPassword(pass != null ? pass : Decryptor.DEFAULT_PASSWORD)) {
             throw new EncryptedPowerPointFileException("PowerPoint file is encrypted. The
correct password needs to be set via Biff8EncryptionKey.setCurrentUserPassword()");
@@ -342,10 +341,11 @@ public class HSLFSlideShowEncrypted {
             // create password record
             if (dea == null) {
                 dea = new DocumentEncryptionAtom();
+                enc = null;
             }
+            encryptInit();
             EncryptionInfo ei = dea.getEncryptionInfo();
             byte salt[] = ei.getVerifier().getSalt();
-            Encryptor enc = ei.getEncryptor();
             if (salt == null) {
                 enc.confirmPassword(password);
             } else {
@@ -396,11 +396,12 @@ public class HSLFSlideShowEncrypted {
             
             recordMap.put(pdr.getLastOnDiskOffset(), r);
         }
+        
+        assert(uea != null && pph != null && uea.getPersistPointersOffset()
== pph.getLastOnDiskOffset());
+        
         recordMap.put(pph.getLastOnDiskOffset(), pph);
         recordMap.put(uea.getLastOnDiskOffset(), uea);
 
-        assert(uea != null && pph != null && uea.getPersistPointersOffset()
== pph.getLastOnDiskOffset());
-        
         if (duplicatedCount == 0 && obsoleteOffsets.isEmpty()) {
             return records;
         }

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java?rev=1704964&r1=1704963&r2=1704964&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFSlideShowImpl.java Wed
Sep 23 23:22:46 2015
@@ -221,8 +221,15 @@ public final class HSLFSlideShowImpl ext
 			(DocumentEntry)directory.getEntry("PowerPoint Document");
 
 		// Grab the document stream
-		_docstream = new byte[docProps.getSize()];
-		directory.createDocumentInputStream("PowerPoint Document").read(_docstream);
+		int len = docProps.getSize();
+		_docstream = new byte[len];
+		InputStream is = directory.createDocumentInputStream("PowerPoint Document");
+		int readLen = is.read(_docstream);
+		is.close();
+		
+		if (len != readLen) {
+		    throw new IOException("Document input stream ended prematurely - expected "+len+" bytes
- received "+readLen+" bytes");
+		}
 	}
 
 	/**
@@ -374,11 +381,16 @@ public final class HSLFSlideShowImpl ext
         HSLFSlideShowEncrypted decryptData = new HSLFSlideShowEncrypted(getDocumentEncryptionAtom());
         
 		DocumentEntry entry = (DocumentEntry)directory.getEntry("Pictures");
-		byte[] pictstream = new byte[entry.getSize()];
+		int len = entry.getSize();
+		byte[] pictstream = new byte[len];
 		DocumentInputStream is = directory.createDocumentInputStream(entry);
-		is.read(pictstream);
+		int readLen = is.read(pictstream);
 		is.close();
 
+		if (len != readLen) {
+		    throw new IOException("Picture stream ended prematurely - expected "+len+" bytes -
received "+readLen+" bytes");
+		}
+
 		
         int pos = 0;
 		// An empty picture record (length 0) will take up 8 bytes
@@ -507,7 +519,9 @@ public final class HSLFSlideShowImpl ext
         }
         cos.close();
         
-        assert(usr != null && ptr != null);
+        if (usr == null || ptr == null) {
+            throw new HSLFException("UserEditAtom or PersistPtr can't be determined.");
+        }
         
         Map<Integer,Integer> persistIds = new HashMap<Integer,Integer>();
         for (Map.Entry<Integer,Integer> entry : ptr.getSlideLocationsLookup().entrySet())
{
@@ -540,7 +554,7 @@ public final class HSLFSlideShowImpl ext
         // Update and write out the Current User atom
         int oldLastUserEditAtomPos = (int)currentUser.getCurrentEditOffset();
         Integer newLastUserEditAtomPos = oldToNewPositions.get(oldLastUserEditAtomPos);
-        if(usr == null || newLastUserEditAtomPos == null || usr.getLastOnDiskOffset() !=
newLastUserEditAtomPos) {
+        if(newLastUserEditAtomPos == null || usr.getLastOnDiskOffset() != newLastUserEditAtomPos)
{
             throw new HSLFException("Couldn't find the new location of the last UserEditAtom
that used to be at " + oldLastUserEditAtomPos);
         }
         currentUser.setCurrentEditOffset(usr.getLastOnDiskOffset());

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFTextParagraph.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFTextParagraph.java?rev=1704964&r1=1704963&r2=1704964&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFTextParagraph.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFTextParagraph.java Wed
Sep 23 23:22:46 2015
@@ -21,18 +21,49 @@ import static org.apache.poi.hslf.record
 
 import java.awt.Color;
 import java.io.IOException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Iterator;
+import java.util.List;
 
 import org.apache.poi.hslf.model.PPFont;
-import org.apache.poi.hslf.model.textproperties.*;
+import org.apache.poi.hslf.model.textproperties.BitMaskTextProp;
+import org.apache.poi.hslf.model.textproperties.FontAlignmentProp;
+import org.apache.poi.hslf.model.textproperties.IndentProp;
+import org.apache.poi.hslf.model.textproperties.ParagraphFlagsTextProp;
+import org.apache.poi.hslf.model.textproperties.TextAlignmentProp;
+import org.apache.poi.hslf.model.textproperties.TextPFException9;
+import org.apache.poi.hslf.model.textproperties.TextProp;
+import org.apache.poi.hslf.model.textproperties.TextPropCollection;
 import org.apache.poi.hslf.model.textproperties.TextPropCollection.TextPropType;
-import org.apache.poi.hslf.record.*;
+import org.apache.poi.hslf.record.ColorSchemeAtom;
+import org.apache.poi.hslf.record.EscherTextboxWrapper;
+import org.apache.poi.hslf.record.FontCollection;
+import org.apache.poi.hslf.record.MasterTextPropAtom;
+import org.apache.poi.hslf.record.OutlineTextRefAtom;
+import org.apache.poi.hslf.record.PPDrawing;
+import org.apache.poi.hslf.record.Record;
+import org.apache.poi.hslf.record.RecordContainer;
+import org.apache.poi.hslf.record.RecordTypes;
+import org.apache.poi.hslf.record.SlideListWithText;
+import org.apache.poi.hslf.record.SlidePersistAtom;
+import org.apache.poi.hslf.record.StyleTextProp9Atom;
+import org.apache.poi.hslf.record.StyleTextPropAtom;
+import org.apache.poi.hslf.record.TextBytesAtom;
+import org.apache.poi.hslf.record.TextCharsAtom;
+import org.apache.poi.hslf.record.TextHeaderAtom;
+import org.apache.poi.hslf.record.TextRulerAtom;
+import org.apache.poi.hslf.record.TextSpecInfoAtom;
 import org.apache.poi.sl.draw.DrawPaint;
 import org.apache.poi.sl.usermodel.AutoNumberingScheme;
 import org.apache.poi.sl.usermodel.PaintStyle;
 import org.apache.poi.sl.usermodel.PaintStyle.SolidPaint;
 import org.apache.poi.sl.usermodel.TextParagraph;
-import org.apache.poi.util.*;
+import org.apache.poi.util.LocaleUtil;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
+import org.apache.poi.util.StringUtil;
+import org.apache.poi.util.Units;
 
 /**
  * This class represents a run of text in a powerpoint document. That
@@ -906,12 +937,16 @@ public final class HSLFTextParagraph imp
         }
 
         Iterator<HSLFTextRun> runIter = htp.getTextRuns().iterator();
-        HSLFTextRun htr = runIter.next();
-        htr.setText("");
-        assert (htr != null);
-        while (runIter.hasNext()) {
-            runIter.next();
-            runIter.remove();
+        if (runIter.hasNext()) {
+            HSLFTextRun htr = runIter.next();
+            htr.setText("");
+            while (runIter.hasNext()) {
+                runIter.next();
+                runIter.remove();
+            }
+        } else {
+            HSLFTextRun trun = new HSLFTextRun(htp);
+            htp.addTextRun(trun);
         }
 
         return appendText(paragraphs, text, false);



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@poi.apache.org
For additional commands, e-mail: commits-help@poi.apache.org


Mime
View raw message