fix some cases where iterator usage does not check hasNext

git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1855480 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
PJ Fanning 2019-03-14 04:01:10 +00:00
parent 7f12edf416
commit 126606c838
3 changed files with 24 additions and 23 deletions

View File

@ -70,9 +70,9 @@ public class ImageUtils {
case Workbook.PICTURE_TYPE_DIB: case Workbook.PICTURE_TYPE_DIB:
try { try {
//read the image using javax.imageio.* //read the image using javax.imageio.*
ImageInputStream iis = ImageIO.createImageInputStream( is ); try (ImageInputStream iis = ImageIO.createImageInputStream(is)) {
try {
Iterator<ImageReader> i = ImageIO.getImageReaders( iis ); Iterator<ImageReader> i = ImageIO.getImageReaders( iis );
if (i.hasNext()) {
ImageReader r = i.next(); ImageReader r = i.next();
try { try {
r.setInput( iis ); r.setInput( iis );
@ -90,8 +90,9 @@ public class ImageUtils {
} finally { } finally {
r.dispose(); r.dispose();
} }
} finally { } else {
iis.close(); logger.log(POILogger.WARN, "ImageIO found no images");
}
} }
} catch (IOException e) { } catch (IOException e) {

View File

@ -98,7 +98,7 @@ public class GeometrySection extends XDGFSection {
Iterator<GeometryRow> rows = getCombinedRows().iterator(); Iterator<GeometryRow> rows = getCombinedRows().iterator();
// special cases // special cases
GeometryRow first = rows.next(); GeometryRow first = rows.hasNext() ? rows.next() : null;
if (first instanceof Ellipse) { if (first instanceof Ellipse) {
return ((Ellipse)first).getPath(); return ((Ellipse)first).getPath();

View File

@ -1220,7 +1220,7 @@ public final class HSLFTextParagraph implements TextParagraph<HSLFShape,HSLFText
assert(!paragraphs.isEmpty() && !paragraphs.get(0).getTextRuns().isEmpty()); assert(!paragraphs.isEmpty() && !paragraphs.get(0).getTextRuns().isEmpty());
Iterator<HSLFTextParagraph> paraIter = paragraphs.iterator(); Iterator<HSLFTextParagraph> paraIter = paragraphs.iterator();
HSLFTextParagraph htp = paraIter.next(); // keep first HSLFTextParagraph htp = paraIter.hasNext() ? paraIter.next() : null; // keep first
assert (htp != null); assert (htp != null);
while (paraIter.hasNext()) { while (paraIter.hasNext()) {
paraIter.next(); paraIter.next();