You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by us...@apache.org on 2015/11/11 08:41:55 UTC

svn commit: r1713770 - in /poi/trunk/src: java/org/apache/poi/hssf/dev/ java/org/apache/poi/hssf/usermodel/ java/org/apache/poi/poifs/dev/ java/org/apache/poi/poifs/filesystem/ java/org/apache/poi/poifs/storage/ ooxml/java/org/apache/poi/ ooxml/java/or...

Author: uschindler
Date: Wed Nov 11 07:41:54 2015
New Revision: 1713770

URL: http://svn.apache.org/viewvc?rev=1713770&view=rev
Log:
#58597: Remove setAccessible (more coming soon)

Modified:
    poi/trunk/src/java/org/apache/poi/hssf/dev/BiffDrawingToXml.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFComment.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFObjectData.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFPatriarch.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFPicture.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFPolygon.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFShapeGroup.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFSimpleShape.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFTextbox.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java
    poi/trunk/src/java/org/apache/poi/poifs/dev/POIFSDump.java
    poi/trunk/src/java/org/apache/poi/poifs/dev/POIFSHeaderDumper.java
    poi/trunk/src/java/org/apache/poi/poifs/filesystem/NPOIFSFileSystem.java
    poi/trunk/src/java/org/apache/poi/poifs/storage/BlockAllocationTableReader.java
    poi/trunk/src/java/org/apache/poi/poifs/storage/BlockListImpl.java
    poi/trunk/src/ooxml/java/org/apache/poi/POIXMLDocumentPart.java
    poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java
    poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/HSSFTestHelper.java
    poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestCloneSheet.java
    poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java
    poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestPatriarch.java

Modified: poi/trunk/src/java/org/apache/poi/hssf/dev/BiffDrawingToXml.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/dev/BiffDrawingToXml.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/dev/BiffDrawingToXml.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/dev/BiffDrawingToXml.java Wed Nov 11 07:41:54 2015
@@ -24,14 +24,12 @@ import java.io.FileOutputStream;
 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 class BiffDrawingToXml {
     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 @@ public class BiffDrawingToXml {
             HSSFPatriarch p = workbook.getSheetAt(i).getDrawingPatriarch();
             if(p != null ) {
                 builder.append(tab).append("<sheet").append(i).append(">\n");
-                builder.append(getHSSFPatriarchBoundAggregate(p).toXml(tab + "\t"));
+                builder.append(p.getBoundAggregate().toXml(tab + "\t"));
                 builder.append(tab).append("</sheet").append(i).append(">\n");
             }
         }
@@ -164,31 +162,4 @@ public class BiffDrawingToXml {
         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;
-    }
 }

Modified: poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFComment.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFComment.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFComment.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFComment.java Wed Nov 11 07:41:54 2015
@@ -87,7 +87,7 @@ public class HSSFComment extends HSSFTex
     @Override
     void afterInsert(HSSFPatriarch patriarch) {
         super.afterInsert(patriarch);
-        patriarch._getBoundAggregate().addTailRecord(getNoteRecord());
+        patriarch.getBoundAggregate().addTailRecord(getNoteRecord());
     }
 
     @Override
@@ -253,7 +253,7 @@ public class HSSFComment extends HSSFTex
 
     public void afterRemove(HSSFPatriarch patriarch){
         super.afterRemove(patriarch);
-        patriarch._getBoundAggregate().removeTailRecord(getNoteRecord());
+        patriarch.getBoundAggregate().removeTailRecord(getNoteRecord());
     }
 
     @Override

Modified: poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFObjectData.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFObjectData.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFObjectData.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFObjectData.java Wed Nov 11 07:41:54 2015
@@ -126,7 +126,7 @@ public final class HSSFObjectData extend
 
     @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());

Modified: poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFPatriarch.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFPatriarch.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFPatriarch.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFPatriarch.java Wed Nov 11 07:41:54 2015
@@ -495,7 +495,8 @@ public final class HSSFPatriarch impleme
      * 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;
     }
 

Modified: poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFPicture.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFPicture.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFPicture.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFPicture.java Wed Nov 11 07:41:54 2015
@@ -211,7 +211,7 @@ public class HSSFPicture extends HSSFSim
 
     @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());

Modified: poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFPolygon.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFPolygon.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFPolygon.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFPolygon.java Wed Nov 11 07:41:54 2015
@@ -116,7 +116,7 @@ public class HSSFPolygon  extends HSSFSi
 
     @Override
     protected void afterRemove(HSSFPatriarch patriarch) {
-        patriarch._getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildById(EscherClientDataRecord.RECORD_ID));
+        patriarch.getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildById(EscherClientDataRecord.RECORD_ID));
     }
 
     /**

Modified: poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFShapeGroup.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFShapeGroup.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFShapeGroup.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFShapeGroup.java Wed Nov 11 07:41:54 2015
@@ -122,7 +122,7 @@ public class HSSFShapeGroup extends HSSF
 
     @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<shapes.size(); i++ ) {
             HSSFShape shape = shapes.get(i);
@@ -314,7 +314,7 @@ public class HSSFShapeGroup extends HSSF
 
     @Override
     void afterInsert(HSSFPatriarch patriarch){
-        EscherAggregate agg = patriarch._getBoundAggregate();
+        EscherAggregate agg = patriarch.getBoundAggregate();
         EscherContainerRecord containerRecord = getEscherContainer().getChildById(EscherContainerRecord.SP_CONTAINER);
         agg.associateShapeToObjRecord(containerRecord.getChildById(EscherClientDataRecord.RECORD_ID), getObjRecord());
     }

Modified: poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFSheet.java Wed Nov 11 07:41:54 2015
@@ -148,7 +148,7 @@ public final class HSSFSheet implements
         }
         if (getDrawingPatriarch() != null) {
             HSSFPatriarch patr = HSSFPatriarch.createPatriarch(this.getDrawingPatriarch(), sheet);
-            sheet._sheet.getRecords().add(pos, patr._getBoundAggregate());
+            sheet._sheet.getRecords().add(pos, patr.getBoundAggregate());
             sheet._patriarch = patr;
         }
         return sheet;

Modified: poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFSimpleShape.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFSimpleShape.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFSimpleShape.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFSimpleShape.java Wed Nov 11 07:41:54 2015
@@ -144,9 +144,9 @@ public class HSSFSimpleShape extends HSS
 
     @Override
     protected void afterRemove(HSSFPatriarch patriarch) {
-        patriarch._getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildById(EscherClientDataRecord.RECORD_ID));
+        patriarch.getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildById(EscherClientDataRecord.RECORD_ID));
         if (null != getEscherContainer().getChildById(EscherTextboxRecord.RECORD_ID)){
-            patriarch._getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildById(EscherTextboxRecord.RECORD_ID));
+            patriarch.getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildById(EscherTextboxRecord.RECORD_ID));
         }
     }
 
@@ -177,7 +177,7 @@ public class HSSFSimpleShape extends HSS
 
     @Override
     void afterInsert(HSSFPatriarch patriarch){
-        EscherAggregate agg = patriarch._getBoundAggregate();
+        EscherAggregate agg = patriarch.getBoundAggregate();
         agg.associateShapeToObjRecord(getEscherContainer().getChildById(EscherClientDataRecord.RECORD_ID), getObjRecord());
 
         if (null != getTextObjectRecord()){
@@ -244,7 +244,7 @@ public class HSSFSimpleShape extends HSS
             escherTextbox.setRecordId(EscherTextboxRecord.RECORD_ID);
             escherTextbox.setOptions((short) 0x0000);
             getEscherContainer().addChildRecord(escherTextbox);
-            getPatriarch()._getBoundAggregate().associateShapeToObjRecord(escherTextbox, _textObjectRecord);
+            getPatriarch().getBoundAggregate().associateShapeToObjRecord(escherTextbox, _textObjectRecord);
         }
         return _textObjectRecord;
     }

Modified: poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFTextbox.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFTextbox.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFTextbox.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFTextbox.java Wed Nov 11 07:41:54 2015
@@ -128,7 +128,7 @@ public class HSSFTextbox extends HSSFSim
 
     @Override
     void afterInsert(HSSFPatriarch patriarch) {
-        EscherAggregate agg = patriarch._getBoundAggregate();
+        EscherAggregate agg = patriarch.getBoundAggregate();
         agg.associateShapeToObjRecord(getEscherContainer().getChildById(EscherClientDataRecord.RECORD_ID), getObjRecord());
         if (getTextObjectRecord() != null){
             agg.associateShapeToObjRecord(getEscherContainer().getChildById(EscherTextboxRecord.RECORD_ID), getTextObjectRecord());
@@ -240,7 +240,7 @@ public class HSSFTextbox extends HSSFSim
 
     @Override
     protected void afterRemove(HSSFPatriarch patriarch) {
-        patriarch._getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildById(EscherClientDataRecord.RECORD_ID));
-        patriarch._getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildById(EscherTextboxRecord.RECORD_ID));
+        patriarch.getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildById(EscherClientDataRecord.RECORD_ID));
+        patriarch.getBoundAggregate().removeShapeToObjRecord(getEscherContainer().getChildById(EscherTextboxRecord.RECORD_ID));
     }
 }

Modified: poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java Wed Nov 11 07:41:54 2015
@@ -89,6 +89,7 @@ import org.apache.poi.ss.util.CellRangeA
 import org.apache.poi.ss.util.WorkbookUtil;
 import org.apache.poi.util.Configurator;
 import org.apache.poi.util.HexDump;
+import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
@@ -2147,4 +2148,9 @@ public final class HSSFWorkbook extends
     public DirectoryNode getRootDirectory(){
         return directory;
     }
+    
+    @Internal
+    public InternalWorkbook getInternalWorkbook() {
+        return workbook;
+    }
 }

Modified: poi/trunk/src/java/org/apache/poi/poifs/dev/POIFSDump.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/dev/POIFSDump.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/poifs/dev/POIFSDump.java (original)
+++ poi/trunk/src/java/org/apache/poi/poifs/dev/POIFSDump.java Wed Nov 11 07:41:54 2015
@@ -21,7 +21,6 @@ import java.io.FileInputStream;
 import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.OutputStream;
-import java.lang.reflect.Field;
 import java.nio.ByteBuffer;
 import java.util.Iterator;
 
@@ -73,11 +72,11 @@ public class POIFSDump {
             dump(root, file);
             
             if (dumpProps) {
-                HeaderBlock header = getHeaderBlock(fs);
+                HeaderBlock header = fs.getHeaderBlock();
                 dump(fs, header.getPropertyStart(), "properties", file);
             }
             if (dumpMini) {
-                NPropertyTable props = getPropertyTable(fs);
+                NPropertyTable props = fs.getPropertyTable();
                 int startBlock = props.getRoot().getStartBlock(); 
                 if (startBlock == POIFSConstants.END_OF_CHAIN) {
                     System.err.println("No Mini Stream in file");
@@ -86,21 +85,8 @@ public class POIFSDump {
                 }
             }
         }
-   }
-    
-    protected static HeaderBlock getHeaderBlock(NPOIFSFileSystem fs) throws Exception {
-        Field headerF = NPOIFSFileSystem.class.getDeclaredField("_header");
-        headerF.setAccessible(true);
-        HeaderBlock header = (HeaderBlock)headerF.get(fs);
-        return header;
-    }
-    protected static NPropertyTable getPropertyTable(NPOIFSFileSystem fs) throws Exception {
-        Field ptF = NPOIFSFileSystem.class.getDeclaredField("_property_table");
-        ptF.setAccessible(true);
-        NPropertyTable table = (NPropertyTable)ptF.get(fs);
-        return table;
     }
-
+    
     public static void dump(DirectoryEntry root, File parent) throws IOException {
         for(Iterator<Entry> it = root.getEntries(); it.hasNext();){
             Entry entry = it.next();

Modified: poi/trunk/src/java/org/apache/poi/poifs/dev/POIFSHeaderDumper.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/dev/POIFSHeaderDumper.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/poifs/dev/POIFSHeaderDumper.java (original)
+++ poi/trunk/src/java/org/apache/poi/poifs/dev/POIFSHeaderDumper.java Wed Nov 11 07:41:54 2015
@@ -19,8 +19,6 @@ package org.apache.poi.poifs.dev;
 
 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 @@ public class POIFSHeaderDumper {
         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<Math.min(16, data_blocks.blockCount()); i++) {
-            ListManagedBlock block = (ListManagedBlock)gbm.invoke(data_blocks, Integer.valueOf(i));
+            ListManagedBlock block = data_blocks.get(i);
             byte[] data = new byte[Math.min(48, block.getData().length)];
             System.arraycopy(block.getData(), 0, data, 0, data.length);
 
@@ -135,9 +130,7 @@ public class POIFSHeaderDumper {
 
     public static void displayBATReader(String type, BlockAllocationTableReader batReader) throws Exception {
         System.out.println("Sectors, as referenced from the "+type+" FAT:");
-        Field entriesF = batReader.getClass().getDeclaredField("_entries");
-        entriesF.setAccessible(true);
-        IntList entries = (IntList)entriesF.get(batReader);
+        IntList entries = batReader.getEntries();
 
         for(int i=0; i<entries.size(); i++) {
             int bn = entries.get(i);

Modified: poi/trunk/src/java/org/apache/poi/poifs/filesystem/NPOIFSFileSystem.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/filesystem/NPOIFSFileSystem.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/poifs/filesystem/NPOIFSFileSystem.java (original)
+++ poi/trunk/src/java/org/apache/poi/poifs/filesystem/NPOIFSFileSystem.java Wed Nov 11 07:41:54 2015
@@ -55,6 +55,7 @@ import org.apache.poi.poifs.storage.Head
 import org.apache.poi.poifs.storage.HeaderBlockWriter;
 import org.apache.poi.util.CloseIgnoringInputStream;
 import org.apache.poi.util.IOUtils;
+import org.apache.poi.util.Internal;
 import org.apache.poi.util.LongField;
 
 /**
@@ -970,5 +971,15 @@ public class NPOIFSFileSystem extends Bl
     protected int getBlockStoreBlockSize() {
        return getBigBlockSize();
     }
+
+    @Internal
+    public NPropertyTable getPropertyTable() {
+        return _property_table;
+    }
+
+    @Internal
+    public HeaderBlock getHeaderBlock() {
+        return _header;
+    }
 }
 

Modified: poi/trunk/src/java/org/apache/poi/poifs/storage/BlockAllocationTableReader.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/storage/BlockAllocationTableReader.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/poifs/storage/BlockAllocationTableReader.java (original)
+++ poi/trunk/src/java/org/apache/poi/poifs/storage/BlockAllocationTableReader.java Wed Nov 11 07:41:54 2015
@@ -312,4 +312,9 @@ public final class BlockAllocationTableR
         }
         raw_blocks.setBAT(this);
     }
+
+    @Internal
+    public IntList getEntries() {
+        return _entries;
+    }
 }

Modified: poi/trunk/src/java/org/apache/poi/poifs/storage/BlockListImpl.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/storage/BlockListImpl.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/poifs/storage/BlockListImpl.java (original)
+++ poi/trunk/src/java/org/apache/poi/poifs/storage/BlockListImpl.java Wed Nov 11 07:41:54 2015
@@ -19,6 +19,8 @@ package org.apache.poi.poifs.storage;
 
 import java.io.IOException;
 
+import org.apache.poi.util.Internal;
+
 /**
  * A simple implementation of BlockList
  *
@@ -59,10 +61,11 @@ abstract class BlockListImpl implements
     }
 
     /**
-     * Unit testing method. Gets, without sanity checks or
+     * Internal method. Gets, without sanity checks or
      *  removing.
      */
-    protected ListManagedBlock get(final int index) {
+    @Internal
+    public ListManagedBlock get(final int index) {
         return _blocks[index];
     }
 

Modified: poi/trunk/src/ooxml/java/org/apache/poi/POIXMLDocumentPart.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/POIXMLDocumentPart.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/POIXMLDocumentPart.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/POIXMLDocumentPart.java Wed Nov 11 07:41:54 2015
@@ -38,6 +38,7 @@ import org.apache.poi.openxml4j.opc.Pack
 import org.apache.poi.openxml4j.opc.PackageRelationshipTypes;
 import org.apache.poi.openxml4j.opc.PackagingURIHelper;
 import org.apache.poi.openxml4j.opc.TargetMode;
+import org.apache.poi.util.Internal;
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
 import org.apache.xmlbeans.XmlOptions;
@@ -510,4 +511,15 @@ public class POIXMLDocumentPart {
     protected void onDocumentRemove() throws IOException {
 
     }
+
+    /**
+     * Internal method, do not use!
+     * <p>
+     * This method only exists to allow access to protected {@link POIXMLDocumentPart#onDocumentRead()}
+     * from {@link org.apache.poi.xwpf.usermodel.XWPFDocument} without reflection. It should be removed.
+     */
+    @Internal @Deprecated
+    public static void _invokeOnDocumentRead(POIXMLDocumentPart part) throws IOException {
+        part.onDocumentRead();
+    }
 }

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xwpf/usermodel/XWPFDocument.java Wed Nov 11 07:41:54 2015
@@ -20,7 +20,6 @@ import java.io.ByteArrayOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.lang.reflect.Method;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
@@ -48,7 +47,6 @@ import org.apache.poi.openxml4j.opc.Pack
 import org.apache.poi.openxml4j.opc.PackagingURIHelper;
 import org.apache.poi.openxml4j.opc.TargetMode;
 import org.apache.poi.poifs.crypt.HashAlgorithm;
-import org.apache.poi.util.DocumentHelper;
 import org.apache.poi.util.IOUtils;
 import org.apache.poi.util.IdentifierManager;
 import org.apache.poi.util.Internal;
@@ -153,6 +151,7 @@ public class XWPFDocument extends POIXML
         }
     }
 
+    @SuppressWarnings("deprecation")
     @Override
     protected void onDocumentRead() throws IOException {
         try {
@@ -224,13 +223,9 @@ public class XWPFDocument extends POIXML
                     for (POIXMLDocumentPart gp : p.getRelations()) {
                         // Trigger the onDocumentRead for all the child parts
                         // Otherwise we'll hit issues on Styles, Settings etc on save
-                        try {
-                            Method onDocumentRead = gp.getClass().getDeclaredMethod("onDocumentRead");
-                            onDocumentRead.setAccessible(true);
-                            onDocumentRead.invoke(gp);
-                        } catch (Exception e) {
-                            throw new POIXMLException(e);
-                        }
+                        // TODO: Refactor this to not need to access protected method
+                        // from other package! Remove the static helper method once fixed!!!
+                        POIXMLDocumentPart._invokeOnDocumentRead(gp);
                     }
                 }
             }

Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/HSSFTestHelper.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/HSSFTestHelper.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/HSSFTestHelper.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/HSSFTestHelper.java Wed Nov 11 07:41:54 2015
@@ -72,7 +72,7 @@ public class HSSFTestHelper {
     }
 
     public static EscherAggregate getEscherAggregate(HSSFPatriarch patriarch){
-        return patriarch._getBoundAggregate();
+        return patriarch.getBoundAggregate();
     }
 
     public static int allocateNewShapeId(HSSFPatriarch patriarch){

Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestCloneSheet.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestCloneSheet.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestCloneSheet.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestCloneSheet.java Wed Nov 11 07:41:54 2015
@@ -85,13 +85,13 @@ public final class TestCloneSheet extend
         HSSFSheet s = b.createSheet("Test");
         HSSFPatriarch patriarch = s.createDrawingPatriarch();
 
-        EscherAggregate agg1 = patriarch._getBoundAggregate();
+        EscherAggregate agg1 = patriarch.getBoundAggregate();
 
         HSSFSheet s2 = s.cloneSheet(b);
 
         patriarch = s2.getDrawingPatriarch();
 
-        EscherAggregate agg2 = patriarch._getBoundAggregate();
+        EscherAggregate agg2 = patriarch.getBoundAggregate();
 
         EscherSpRecord sp1 = (EscherSpRecord) agg1.getEscherContainer().getChild(1).getChild(0).getChild(1);
         EscherSpRecord sp2 = (EscherSpRecord) agg2.getEscherContainer().getChild(1).getChild(0).getChild(1);

Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFSheet.java Wed Nov 11 07:41:54 2015
@@ -940,8 +940,8 @@ public final class TestHSSFSheet extends
         HSSFSheet sheet2 = wb2.getSheetAt(1);
 
         //check that id of the drawing group was updated
-        EscherDgRecord dg1 = (EscherDgRecord)sheet1.getDrawingPatriarch()._getBoundAggregate().findFirstWithId(EscherDgRecord.RECORD_ID);
-        EscherDgRecord dg2 = (EscherDgRecord)sheet2.getDrawingPatriarch()._getBoundAggregate().findFirstWithId(EscherDgRecord.RECORD_ID);
+        EscherDgRecord dg1 = (EscherDgRecord)sheet1.getDrawingPatriarch().getBoundAggregate().findFirstWithId(EscherDgRecord.RECORD_ID);
+        EscherDgRecord dg2 = (EscherDgRecord)sheet2.getDrawingPatriarch().getBoundAggregate().findFirstWithId(EscherDgRecord.RECORD_ID);
         int dg_id_1 = dg1.getOptions() >> 4;
         int dg_id_2 = dg2.getOptions() >> 4;
         assertEquals(dg_id_1 + 1, dg_id_2);

Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestPatriarch.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestPatriarch.java?rev=1713770&r1=1713769&r2=1713770&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestPatriarch.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestPatriarch.java Wed Nov 11 07:41:54 2015
@@ -40,7 +40,7 @@ public class TestPatriarch extends TestC
 
         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 @@ public class TestPatriarch extends TestC
         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());
     }



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