]> source.dussan.org Git - poi.git/commitdiff
Fix sonar issues
authorAndreas Beeker <kiwiwings@apache.org>
Sun, 13 Oct 2019 19:38:03 +0000 (19:38 +0000)
committerAndreas Beeker <kiwiwings@apache.org>
Sun, 13 Oct 2019 19:38:03 +0000 (19:38 +0000)
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1868410 13f79535-47bb-0310-9956-ffa450edef68

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

index 70df41135acc6955639135df52d1d123ef5711bb..3dd5d189e3349a13ea84aeb75b22cc1cf2dcf9b9 100644 (file)
@@ -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.RecordFormatException;
  */
 @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;
         }
index 3b3b7fa393a928d7055570c1c0dd1f87105c5529..95328268737d03143b7ed17ca83eaba3c2974018 100644 (file)
 
 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.HemfComment;
 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 implements Iterator<HwmfEmbedded> {
         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) {
index 627ed808d6e1b6f295db452c3675803525098784..3b57ccb3b8615863b93ad3759d5443512a3c7537 100644 (file)
@@ -341,6 +341,9 @@ public class HSLFAutoShape extends HSLFTextShape implements AutoShape<HSLFShape,
     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;
index 788ad62534aedc3e297ca4dc51b15d1abbbadc40..ee5912773fe23680a01285b04dfcc3d77389216e 100644 (file)
@@ -205,7 +205,7 @@ public class HwmfEscape implements HwmfRecord {
         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;