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

svn commit: r1855480 - in /poi/trunk/src: java/org/apache/poi/ss/util/ImageUtils.java ooxml/java/org/apache/poi/xdgf/usermodel/section/GeometrySection.java scratchpad/src/org/apache/poi/hslf/usermodel/HSLFTextParagraph.java

Author: fanningpj
Date: Thu Mar 14 04:01:10 2019
New Revision: 1855480

URL: http://svn.apache.org/viewvc?rev=1855480&view=rev
Log:
fix some cases where iterator usage does not check hasNext

Modified:
    poi/trunk/src/java/org/apache/poi/ss/util/ImageUtils.java
    poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/section/GeometrySection.java
    poi/trunk/src/scratchpad/src/org/apache/poi/hslf/usermodel/HSLFTextParagraph.java

Modified: poi/trunk/src/java/org/apache/poi/ss/util/ImageUtils.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/util/ImageUtils.java?rev=1855480&r1=1855479&r2=1855480&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/util/ImageUtils.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/util/ImageUtils.java Thu Mar 14 04:01:10 2019
@@ -59,7 +59,7 @@ public class ImageUtils {
      *
      * @return image dimension in pixels
      */
-    public static Dimension getImageDimension(InputStream is, int type){
+    public static Dimension getImageDimension(InputStream is, int type) {
         Dimension size = new Dimension();
 
         switch (type){
@@ -70,28 +70,29 @@ public class ImageUtils {
             case Workbook.PICTURE_TYPE_DIB:
                 try {
                     //read the image using javax.imageio.*
-                    ImageInputStream iis = ImageIO.createImageInputStream( is );
-                    try {
+                    try (ImageInputStream iis = ImageIO.createImageInputStream(is)) {
                         Iterator<ImageReader> i = ImageIO.getImageReaders( iis );
-                        ImageReader r = i.next();
-                        try {
-                            r.setInput( iis );
-                            BufferedImage img = r.read(0);
-        
-                            int[] dpi = getResolution(r);
-        
-                            //if DPI is zero then assume standard 96 DPI
-                            //since cannot divide by zero
-                            if (dpi[0] == 0) dpi[0] = PIXEL_DPI;
-                            if (dpi[1] == 0) dpi[1] = PIXEL_DPI;
-        
-                            size.width = img.getWidth()*PIXEL_DPI/dpi[0];
-                            size.height = img.getHeight()*PIXEL_DPI/dpi[1];
-                        } finally {
-                            r.dispose();
+                        if (i.hasNext()) {
+                            ImageReader r = i.next();
+                            try {
+                                r.setInput( iis );
+                                BufferedImage img = r.read(0);
+
+                                int[] dpi = getResolution(r);
+
+                                //if DPI is zero then assume standard 96 DPI
+                                //since cannot divide by zero
+                                if (dpi[0] == 0) dpi[0] = PIXEL_DPI;
+                                if (dpi[1] == 0) dpi[1] = PIXEL_DPI;
+
+                                size.width = img.getWidth()*PIXEL_DPI/dpi[0];
+                                size.height = img.getHeight()*PIXEL_DPI/dpi[1];
+                            } finally {
+                                r.dispose();
+                            }
+                        } else {
+                            logger.log(POILogger.WARN, "ImageIO found no images");
                         }
-                    } finally {
-                        iis.close();
                     }
 
                 } catch (IOException e) {

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/section/GeometrySection.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/section/GeometrySection.java?rev=1855480&r1=1855479&r2=1855480&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/section/GeometrySection.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xdgf/usermodel/section/GeometrySection.java Thu Mar 14 04:01:10 2019
@@ -98,7 +98,7 @@ public class GeometrySection extends XDG
         Iterator<GeometryRow> rows = getCombinedRows().iterator();
 
         // special cases
-        GeometryRow first = rows.next();
+        GeometryRow first = rows.hasNext() ? rows.next() : null;
 
         if (first instanceof Ellipse) {
             return ((Ellipse)first).getPath();

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=1855480&r1=1855479&r2=1855480&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 Thu Mar 14 04:01:10 2019
@@ -1220,7 +1220,7 @@ public final class HSLFTextParagraph imp
         assert(!paragraphs.isEmpty() && !paragraphs.get(0).getTextRuns().isEmpty());
 
         Iterator<HSLFTextParagraph> paraIter = paragraphs.iterator();
-        HSLFTextParagraph htp = paraIter.next(); // keep first
+        HSLFTextParagraph htp = paraIter.hasNext() ? paraIter.next() : null; // keep first
         assert (htp != null);
         while (paraIter.hasNext()) {
             paraIter.next();



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