mirror of https://github.com/apache/poi.git
Patch from Jon Scharff from bug #57820 - Avoid NPE on HSLF Tables with a top position of -1
git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1674441 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
903b5c91c1
commit
facbded856
|
@ -159,7 +159,7 @@ public final class Table extends ShapeGroup {
|
||||||
return delta;
|
return delta;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
int y0 = -1;
|
int y0 = (sh.length > 0) ? sh[0].getAnchor().y - 1 : -1;
|
||||||
int maxrowlen = 0;
|
int maxrowlen = 0;
|
||||||
ArrayList lst = new ArrayList();
|
ArrayList lst = new ArrayList();
|
||||||
ArrayList row = null;
|
ArrayList row = null;
|
||||||
|
|
|
@ -19,11 +19,16 @@ package org.apache.poi.hslf.model;
|
||||||
|
|
||||||
import java.io.ByteArrayInputStream;
|
import java.io.ByteArrayInputStream;
|
||||||
import java.io.ByteArrayOutputStream;
|
import java.io.ByteArrayOutputStream;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
import junit.framework.TestCase;
|
import junit.framework.TestCase;
|
||||||
|
|
||||||
|
import org.apache.poi.POIDataSamples;
|
||||||
|
import org.apache.poi.hslf.HSLFSlideShow;
|
||||||
|
import org.apache.poi.hslf.extractor.PowerPointExtractor;
|
||||||
import org.apache.poi.hslf.record.TextHeaderAtom;
|
import org.apache.poi.hslf.record.TextHeaderAtom;
|
||||||
import org.apache.poi.hslf.usermodel.SlideShow;
|
import org.apache.poi.hslf.usermodel.SlideShow;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test <code>Table</code> object.
|
* Test <code>Table</code> object.
|
||||||
|
@ -31,6 +36,7 @@ import org.apache.poi.hslf.usermodel.SlideShow;
|
||||||
* @author Yegor Kozlov
|
* @author Yegor Kozlov
|
||||||
*/
|
*/
|
||||||
public final class TestTable extends TestCase {
|
public final class TestTable extends TestCase {
|
||||||
|
private static POIDataSamples _slTests = POIDataSamples.getSlideShowInstance();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Test that ShapeFactory works properly and returns <code>Table</code>
|
* Test that ShapeFactory works properly and returns <code>Table</code>
|
||||||
|
@ -100,4 +106,30 @@ public final class TestTable extends TestCase {
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Bug 57820: initTable throws NullPointerException
|
||||||
|
* when the table is positioned with its top at -1
|
||||||
|
*/
|
||||||
|
@Test
|
||||||
|
public void test57820() throws Exception {
|
||||||
|
SlideShow ppt = new SlideShow(new HSLFSlideShow(_slTests.openResourceAsStream("bug57820-initTableNullRefrenceException.ppt")));
|
||||||
|
|
||||||
|
Slide[] slides = ppt.getSlides();
|
||||||
|
assertEquals(1, slides.length);
|
||||||
|
|
||||||
|
Shape[] shapes = slides[0].getShapes(); //throws NullPointerException
|
||||||
|
|
||||||
|
Table tbl = null;
|
||||||
|
for(int idx = 0; idx < shapes.length; idx++) {
|
||||||
|
if(shapes[idx] instanceof Table) {
|
||||||
|
tbl = (Table)shapes[idx];
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
assertNotNull(tbl);
|
||||||
|
|
||||||
|
assertEquals(-1, tbl.getAnchor().y);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Binary file not shown.
Loading…
Reference in New Issue