Index: src/java/org/apache/poi/hssf/dev/BiffDrawingToXml.java =================================================================== --- src/java/org/apache/poi/hssf/dev/BiffDrawingToXml.java (revision 1713221) +++ src/java/org/apache/poi/hssf/dev/BiffDrawingToXml.java (working copy) @@ -24,14 +24,12 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; import org.apache.poi.ddf.EscherRecord; import org.apache.poi.hssf.model.InternalWorkbook; import org.apache.poi.hssf.record.DrawingGroupRecord; -import org.apache.poi.hssf.record.EscherAggregate; import org.apache.poi.hssf.usermodel.HSSFPatriarch; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.poifs.filesystem.NPOIFSFileSystem; @@ -137,7 +135,7 @@ public static void writeToFile(OutputStream fos, InputStream xlsWorkbook, boolean excludeWorkbookRecords, String[] params) throws IOException { NPOIFSFileSystem fs = new NPOIFSFileSystem(xlsWorkbook); HSSFWorkbook workbook = new HSSFWorkbook(fs); - InternalWorkbook internalWorkbook = getInternalWorkbook(workbook); + InternalWorkbook internalWorkbook = workbook.getInternalWorkbook(); DrawingGroupRecord r = (DrawingGroupRecord) internalWorkbook.findFirstRecordBySid(DrawingGroupRecord.sid); r.decode(); @@ -155,7 +153,7 @@ HSSFPatriarch p = workbook.getSheetAt(i).getDrawingPatriarch(); if(p != null ) { builder.append(tab).append("\n"); - builder.append(getHSSFPatriarchBoundAggregate(p).toXml(tab + "\t")); + builder.append(p.getBoundAggregate().toXml(tab + "\t")); builder.append(tab).append("\n"); } } @@ -164,31 +162,4 @@ fos.close(); } - private static EscherAggregate getHSSFPatriarchBoundAggregate(HSSFPatriarch patriarch) { - Field boundAggregateField = null; - try { - boundAggregateField = patriarch.getClass().getDeclaredField("_boundAggregate"); - boundAggregateField.setAccessible(true); - return (EscherAggregate) boundAggregateField.get(patriarch); - } catch (NoSuchFieldException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - return null; - } - - private static InternalWorkbook getInternalWorkbook(HSSFWorkbook workbook) { - Field internalSheetField = null; - try { - internalSheetField = workbook.getClass().getDeclaredField("workbook"); - internalSheetField.setAccessible(true); - return (InternalWorkbook) internalSheetField.get(workbook); - } catch (NoSuchFieldException e) { - e.printStackTrace(); - } catch (IllegalAccessException e) { - e.printStackTrace(); - } - return null; - } } Index: src/java/org/apache/poi/hssf/usermodel/HSSFComment.java =================================================================== --- src/java/org/apache/poi/hssf/usermodel/HSSFComment.java (revision 1713221) +++ src/java/org/apache/poi/hssf/usermodel/HSSFComment.java (working copy) @@ -87,7 +87,7 @@ @Override void afterInsert(HSSFPatriarch patriarch) { super.afterInsert(patriarch); - patriarch._getBoundAggregate().addTailRecord(getNoteRecord()); + patriarch.getBoundAggregate().addTailRecord(getNoteRecord()); } @Override @@ -253,7 +253,7 @@ public void afterRemove(HSSFPatriarch patriarch){ super.afterRemove(patriarch); - patriarch._getBoundAggregate().removeTailRecord(getNoteRecord()); + patriarch.getBoundAggregate().removeTailRecord(getNoteRecord()); } @Override Index: src/java/org/apache/poi/hssf/usermodel/HSSFObjectData.java =================================================================== --- src/java/org/apache/poi/hssf/usermodel/HSSFObjectData.java (revision 1713221) +++ src/java/org/apache/poi/hssf/usermodel/HSSFObjectData.java (working copy) @@ -126,7 +126,7 @@ @Override void afterInsert(HSSFPatriarch patriarch) { - EscherAggregate agg = patriarch._getBoundAggregate(); + EscherAggregate agg = patriarch.getBoundAggregate(); agg.associateShapeToObjRecord(getEscherContainer().getChildById(EscherClientDataRecord.RECORD_ID), getObjRecord()); EscherBSERecord bse = patriarch.getSheet().getWorkbook().getWorkbook().getBSERecord(getPictureIndex()); Index: src/java/org/apache/poi/hssf/usermodel/HSSFPatriarch.java =================================================================== --- src/java/org/apache/poi/hssf/usermodel/HSSFPatriarch.java (revision 1713221) +++ src/java/org/apache/poi/hssf/usermodel/HSSFPatriarch.java (working copy) @@ -495,7 +495,8 @@ * Returns the aggregate escher record we're bound to * @return - low level representation of sheet drawing data */ - protected EscherAggregate _getBoundAggregate() { + @Internal + public EscherAggregate getBoundAggregate() { return _boundAggregate; } Index: src/java/org/apache/poi/hssf/usermodel/HSSFPicture.java =================================================================== --- src/java/org/apache/poi/hssf/usermodel/HSSFPicture.java (revision 1713221) +++ src/java/org/apache/poi/hssf/usermodel/HSSFPicture.java (working copy) @@ -211,7 +211,7 @@ @Override void afterInsert(HSSFPatriarch patriarch) { - EscherAggregate agg = patriarch._getBoundAggregate(); + EscherAggregate agg = patriarch.getBoundAggregate(); agg.associateShapeToObjRecord(getEscherContainer().getChildById(EscherClientDataRecord.RECORD_ID), getObjRecord()); EscherBSERecord bse = patriarch.getSheet().getWorkbook().getWorkbook().getBSERecord(getPictureIndex()); Index: src/java/org/apache/poi/hssf/usermodel/HSSFPolygon.java =================================================================== --- src/java/org/apache/poi/hssf/usermodel/HSSFPolygon.java (revision 1713221) +++ src/java/org/apache/poi/hssf/usermodel/HSSFPolygon.java (working copy) @@ -116,7 +116,7 @@ @Override protected void afterRemove(HSSFPatriarch patriarch) { - patriarch._getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildById(EscherClientDataRecord.RECORD_ID)); + patriarch.getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildById(EscherClientDataRecord.RECORD_ID)); } /** Index: src/java/org/apache/poi/hssf/usermodel/HSSFShapeGroup.java =================================================================== --- src/java/org/apache/poi/hssf/usermodel/HSSFShapeGroup.java (revision 1713221) +++ src/java/org/apache/poi/hssf/usermodel/HSSFShapeGroup.java (working copy) @@ -122,7 +122,7 @@ @Override protected void afterRemove(HSSFPatriarch patriarch) { - patriarch._getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildContainers().get(0) + patriarch.getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildContainers().get(0) .getChildById(EscherClientDataRecord.RECORD_ID)); for ( int i=0; i it = root.getEntries(); it.hasNext();){ Entry entry = it.next(); Index: src/java/org/apache/poi/poifs/dev/POIFSHeaderDumper.java =================================================================== --- src/java/org/apache/poi/poifs/dev/POIFSHeaderDumper.java (revision 1713221) +++ src/java/org/apache/poi/poifs/dev/POIFSHeaderDumper.java (working copy) @@ -19,8 +19,6 @@ import java.io.FileInputStream; import java.io.InputStream; -import java.lang.reflect.Field; -import java.lang.reflect.Method; import org.apache.poi.poifs.common.POIFSBigBlockSize; import org.apache.poi.poifs.common.POIFSConstants; @@ -118,11 +116,8 @@ System.out.println("Raw Blocks Details:"); System.out.println(" Number of blocks: " + data_blocks.blockCount()); - Method gbm = data_blocks.getClass().getSuperclass().getDeclaredMethod("get", int.class); - gbm.setAccessible(true); - for(int i=0; i> 4; int dg_id_2 = dg2.getOptions() >> 4; assertEquals(dg_id_1 + 1, dg_id_2); Index: src/testcases/org/apache/poi/hssf/usermodel/TestPatriarch.java =================================================================== --- src/testcases/org/apache/poi/hssf/usermodel/TestPatriarch.java (revision 1713221) +++ src/testcases/org/apache/poi/hssf/usermodel/TestPatriarch.java (working copy) @@ -40,7 +40,7 @@ assertSame(patriarch, sh.getDrawingPatriarch()); - EscherAggregate agg = patriarch._getBoundAggregate(); + EscherAggregate agg = patriarch.getBoundAggregate(); EscherDgRecord dg = agg.getEscherContainer().getChildById(EscherDgRecord.RECORD_ID); int lastId = dg.getLastMSOSPID(); @@ -50,7 +50,7 @@ wb = HSSFTestDataSamples.writeOutAndReadBack(wb); sh = wb.getSheetAt(0); patriarch = sh.createDrawingPatriarch(); - dg = patriarch._getBoundAggregate().getEscherContainer().getChildById(EscherDgRecord.RECORD_ID); + dg = patriarch.getBoundAggregate().getEscherContainer().getChildById(EscherDgRecord.RECORD_ID); assertEquals(lastId, dg.getLastMSOSPID()); }