You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ki...@apache.org on 2019/10/13 19:38:03 UTC

svn commit: r1868410 - in /poi/trunk/src/scratchpad/src/org/apache/poi: hemf/record/emf/HemfComment.java hemf/usermodel/HemfEmbeddedIterator.java hslf/usermodel/HSLFAutoShape.java hwmf/record/HwmfEscape.java

Author: kiwiwings
Date: Sun Oct 13 19:38:03 2019
New Revision: 1868410

URL: http://svn.apache.org/viewvc?rev=1868410&view=rev
Log:
Fix sonar issues

Modified:
    poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfComment.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hemf/usermodel/HemfEmbeddedIterator.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFAutoShape.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfEscape.java

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfComment.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfComment.java?rev=1868410&r1=1868409&r2=1868410&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfComment.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hemf/record/emf/HemfComment.java Sun Oct 13 19:38:03 2019
@@ -39,6 +39,8 @@ import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndianConsts;
 import org.apache.poi.util.LittleEndianInputStream;
 import org.apache.poi.util.LocaleUtil;
+import org.apache.poi.util.POILogFactory;
+import org.apache.poi.util.POILogger;
 import org.apache.poi.util.RecordFormatException;
 
 /**
@@ -46,6 +48,7 @@ import org.apache.poi.util.RecordFormatE
  */
 @Internal
 public class HemfComment {
+    private static final POILogger logger = POILogFactory.getLogger(HemfComment.class);
     private static final int MAX_RECORD_LENGTH = HwmfPicture.MAX_RECORD_LENGTH;
 
     public enum HemfCommentRecordType {
@@ -557,7 +560,11 @@ public class HemfComment {
 
             wmfData = IOUtils.safelyAllocate(winMetafileSize, MAX_RECORD_LENGTH);
             // some emf comments are truncated, so we don't use readFully here
-            leis.read(wmfData);
+            int readBytes = leis.read(wmfData);
+            if (readBytes < wmfData.length) {
+                logger.log(POILogger.INFO, "Emf comment with WMF: expected "+wmfData.length+
+                        " bytes - received only "+readBytes+" bytes.");
+            }
 
             return leis.getReadIndex()-startIdx;
         }

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hemf/usermodel/HemfEmbeddedIterator.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hemf/usermodel/HemfEmbeddedIterator.java?rev=1868410&r1=1868409&r2=1868410&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hemf/usermodel/HemfEmbeddedIterator.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hemf/usermodel/HemfEmbeddedIterator.java Sun Oct 13 19:38:03 2019
@@ -17,15 +17,7 @@
 
 package org.apache.poi.hemf.usermodel;
 
-import java.awt.Transparency;
-import java.awt.color.ColorSpace;
 import java.awt.image.BufferedImage;
-import java.awt.image.ComponentColorModel;
-import java.awt.image.DataBuffer;
-import java.awt.image.DataBufferByte;
-import java.awt.image.PixelInterleavedSampleModel;
-import java.awt.image.Raster;
-import java.awt.image.WritableRaster;
 import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.util.ArrayDeque;
@@ -38,7 +30,6 @@ import org.apache.poi.hemf.record.emf.He
 import org.apache.poi.hemf.record.emf.HemfRecord;
 import org.apache.poi.hemf.record.emfplus.HemfPlusImage.EmfPlusBitmapDataType;
 import org.apache.poi.hemf.record.emfplus.HemfPlusImage.EmfPlusImage;
-import org.apache.poi.hemf.record.emfplus.HemfPlusImage.EmfPlusPixelFormat;
 import org.apache.poi.hemf.record.emfplus.HemfPlusObject;
 import org.apache.poi.hemf.record.emfplus.HemfPlusObject.EmfPlusObject;
 import org.apache.poi.hwmf.record.HwmfBitmapDib;
@@ -209,9 +200,12 @@ public class HemfEmbeddedIterator implem
         EmfPlusImage img = epo.getObjectData();
         assert(img.getImageDataType() != null);
 
-        HwmfEmbedded emb = getEmfPlusImageData();
+        final HwmfEmbedded emb = getEmfPlusImageData();
+        if (emb == null) {
+            return null;
+        }
 
-        HwmfEmbeddedType et;
+        final HwmfEmbeddedType et;
         switch (img.getImageDataType()) {
             case BITMAP:
                 if (img.getBitmapType() == EmfPlusBitmapDataType.COMPRESSED) {

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFAutoShape.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFAutoShape.java?rev=1868410&r1=1868409&r2=1868410&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFAutoShape.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFAutoShape.java Sun Oct 13 19:38:03 2019
@@ -341,6 +341,9 @@ public class HSLFAutoShape extends HSLFT
     private void handleEscapeInfo(CTPath2D pathCT, Path2D path2D, byte[] segElem, Iterator<byte[]> vertIter) {
         final ObjectFactory of = new ObjectFactory();
         HSLFFreeformShape.EscapeInfo ei = getEscapeInfo(segElem);
+        if (ei == null) {
+            return;
+        }
         switch (ei) {
             case EXTENSION:
                 break;

Modified: poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfEscape.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfEscape.java?rev=1868410&r1=1868409&r2=1868410&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfEscape.java (original)
+++ poi/trunk/src/scratchpad/src/org/apache/poi/hwmf/record/HwmfEscape.java Sun Oct 13 19:38:03 2019
@@ -205,7 +205,7 @@ public class HwmfEscape implements HwmfR
         int byteCount = leis.readUShort();
         int size = 2*LittleEndianConsts.SHORT_SIZE;
 
-        escapeData = escapeFunction.constructor.get();
+        escapeData = (escapeFunction == null) ? new WmfEscapeUnknownData() : escapeFunction.constructor.get();
         size += escapeData.init(leis, byteCount, escapeFunction);
 
         return size;



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