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 17:57:39 UTC

svn commit: r1713891 - in /poi/trunk/src: java/org/apache/poi/poifs/storage/ java/org/apache/poi/util/ ooxml/testcases/org/apache/poi/openxml4j/opc/ ooxml/testcases/org/apache/poi/poifs/crypt/ ooxml/testcases/org/apache/poi/xslf/usermodel/ ooxml/testca...

Author: uschindler
Date: Wed Nov 11 16:57:39 2015
New Revision: 1713891

URL: http://svn.apache.org/viewvc?rev=1713891&view=rev
Log:
#58597: Fix tests to not do setAccessible(), add some doPrivileged, too.

Modified:
    poi/trunk/src/java/org/apache/poi/poifs/storage/RawDataBlock.java
    poi/trunk/src/java/org/apache/poi/util/POILogFactory.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestPPTX2PNG.java
    poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java
    poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/model/TestDocumentProperties.java
    poi/trunk/src/testcases/org/apache/poi/POITestCase.java
    poi/trunk/src/testcases/org/apache/poi/hssf/record/aggregates/TestSharedValueManager.java
    poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFName.java
    poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestShapeGroup.java
    poi/trunk/src/testcases/org/apache/poi/poifs/storage/TestRawDataBlock.java
    poi/trunk/src/testcases/org/apache/poi/poifs/storage/TestRawDataBlockList.java
    poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestMathX.java
    poi/trunk/src/testcases/org/apache/poi/util/TestHexDump.java
    poi/trunk/src/testcases/org/apache/poi/util/TestPOILogger.java

Modified: poi/trunk/src/java/org/apache/poi/poifs/storage/RawDataBlock.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/poifs/storage/RawDataBlock.java?rev=1713891&r1=1713890&r2=1713891&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/poifs/storage/RawDataBlock.java (original)
+++ poi/trunk/src/java/org/apache/poi/poifs/storage/RawDataBlock.java Wed Nov 11 16:57:39 2015
@@ -38,7 +38,7 @@ public class RawDataBlock
     private byte[]  _data;
     private boolean _eof;
     private boolean _hasData;
-    private static POILogger log = POILogFactory.getLogger(RawDataBlock.class);
+    static POILogger log = POILogFactory.getLogger(RawDataBlock.class);
 
     /**
      * Constructor RawDataBlock

Modified: poi/trunk/src/java/org/apache/poi/util/POILogFactory.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/util/POILogFactory.java?rev=1713891&r1=1713890&r2=1713891&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/util/POILogFactory.java (original)
+++ poi/trunk/src/java/org/apache/poi/util/POILogFactory.java Wed Nov 11 16:57:39 2015
@@ -46,7 +46,7 @@ public final class POILogFactory {
      * The name of the class to use. Initialised the
      *  first time we need it
      */
-    private static String _loggerClassName = null;
+    static String _loggerClassName = null;
 
     /**
      * Construct a POILogFactory.

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java?rev=1713891&r1=1713890&r2=1713891&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/openxml4j/opc/TestPackage.java Wed Nov 11 16:57:39 2015
@@ -32,7 +32,6 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.lang.reflect.Field;
 import java.lang.reflect.InvocationTargetException;
 import java.net.URI;
 import java.net.URISyntaxException;
@@ -46,6 +45,7 @@ import java.util.zip.ZipFile;
 import java.util.zip.ZipOutputStream;
 
 import org.apache.poi.EncryptedDocumentException;
+import org.apache.poi.POITestCase;
 import org.apache.poi.POIXMLException;
 import org.apache.poi.openxml4j.OpenXML4JTestDataSamples;
 import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
@@ -579,11 +579,8 @@ public final class TestPackage {
         assertTrue(tempFile2.delete());
     }
 
-	private static ContentTypeManager getContentTypeManager(OPCPackage pkg)
-    throws IOException, SecurityException, NoSuchFieldException, IllegalArgumentException, IllegalAccessException {
-		Field f = OPCPackage.class.getDeclaredField("contentTypeManager");
-		f.setAccessible(true);
-		return (ContentTypeManager)f.get(pkg);
+	private static ContentTypeManager getContentTypeManager(OPCPackage pkg) {
+	    return POITestCase.getFieldValue(OPCPackage.class, pkg, ContentTypeManager.class, "contentTypeManager");
 	}
 
     @Test

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java?rev=1713891&r1=1713890&r2=1713891&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/poifs/crypt/TestSignatureInfo.java Wed Nov 11 16:57:39 2015
@@ -34,7 +34,6 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
-import java.lang.reflect.Method;
 import java.net.ConnectException;
 import java.net.HttpURLConnection;
 import java.net.MalformedURLException;
@@ -54,6 +53,7 @@ import java.util.Iterator;
 import java.util.List;
 
 import org.apache.poi.POIDataSamples;
+import org.apache.poi.POITestCase;
 import org.apache.poi.openxml4j.opc.OPCPackage;
 import org.apache.poi.openxml4j.opc.PackageAccess;
 import org.apache.poi.poifs.crypt.dsig.DigestInfo;
@@ -247,9 +247,7 @@ public class TestSignatureInfo {
         XSSFWorkbook wb = new XSSFWorkbook(pkg);
         wb.setSheetName(0, "manipulated");
         // ... I don't know, why commit is protected ...
-        Method m = XSSFWorkbook.class.getDeclaredMethod("commit");
-        m.setAccessible(true);
-        m.invoke(wb);
+        POITestCase.callMethod(XSSFWorkbook.class, wb, Void.class, "commit", new Class[0], new Object[0]);
 
         // todo: test a manipulation on a package part, which is not signed
         // ... maybe in combination with #56164 

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestPPTX2PNG.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestPPTX2PNG.java?rev=1713891&r1=1713890&r2=1713891&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestPPTX2PNG.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xslf/usermodel/TestPPTX2PNG.java Wed Nov 11 16:57:39 2015
@@ -20,12 +20,9 @@
 package org.apache.poi.xslf.usermodel;
 
 import java.io.File;
-import java.lang.reflect.Field;
 
 import org.apache.poi.POIDataSamples;
 import org.apache.poi.xslf.util.PPTX2PNG;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
 import org.junit.Test;
 
 /**
@@ -34,32 +31,6 @@ import org.junit.Test;
  * @author Yegor Kozlov
  */
 public class TestPPTX2PNG {
-    private static boolean jaxpDebugEnable = false;
-    
-    @BeforeClass
-    public static void activateJaxpDebug() {
-        jaxpDebugEnable = setDebugFld(true);
-    }
-
-    @AfterClass
-    public static void resetJaxpDebug() {
-        setDebugFld(jaxpDebugEnable);
-    }    
-    
-    private static boolean setDebugFld(boolean enable) {
-        // enable jaxp debugging because of jaxb/stax error in gump build
-        try {
-            Class<?> clz = Class.forName("javax.xml.stream.FactoryFinder");
-            Field fld = clz.getDeclaredField("debug");
-            fld.setAccessible(true);
-            boolean isDebug = (Boolean)fld.get(null);
-            fld.set(null, enable);
-            return isDebug;
-        } catch (Exception e) {
-            // ignore
-            return false;
-        }
-    }
     
     @Test
     public void render() throws Exception {

Modified: poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java?rev=1713891&r1=1713890&r2=1713891&view=diff
==============================================================================
--- poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java (original)
+++ poi/trunk/src/ooxml/testcases/org/apache/poi/xssf/streaming/TestSXSSFWorkbook.java Wed Nov 11 16:57:39 2015
@@ -28,8 +28,8 @@ import static org.junit.Assert.fail;
 import java.io.File;
 import java.io.FileOutputStream;
 import java.io.IOException;
-import java.lang.reflect.Field;
 
+import org.apache.poi.POITestCase;
 import org.apache.poi.ss.usermodel.BaseTestWorkbook;
 import org.apache.poi.ss.usermodel.Cell;
 import org.apache.poi.ss.usermodel.Row;
@@ -106,9 +106,7 @@ public final class TestSXSSFWorkbook ext
         @SuppressWarnings("resource")
         SXSSFWorkbook wb = new SXSSFWorkbook(null, 10, false, true);
 
-        Field f = SXSSFWorkbook.class.getDeclaredField("_sharedStringSource");
-        f.setAccessible(true);
-        SharedStringsTable sss = (SharedStringsTable)f.get(wb);
+        SharedStringsTable sss =  POITestCase.getFieldValue(SXSSFWorkbook.class, wb, SharedStringsTable.class, "_sharedStringSource");
         
         assertNotNull(sss);
 
@@ -119,7 +117,7 @@ public final class TestSXSSFWorkbook ext
         row.createCell(2).setCellValue("A");
 
         XSSFWorkbook xssfWorkbook = (XSSFWorkbook) SXSSFITestDataProvider.instance.writeOutAndReadBack(wb);
-        sss = (SharedStringsTable)f.get(wb);
+        sss = POITestCase.getFieldValue(SXSSFWorkbook.class, wb, SharedStringsTable.class, "_sharedStringSource");
         assertEquals(2, sss.getUniqueCount());
         assertTrue(wb.dispose());
 

Modified: poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/model/TestDocumentProperties.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/model/TestDocumentProperties.java?rev=1713891&r1=1713890&r2=1713891&view=diff
==============================================================================
--- poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/model/TestDocumentProperties.java (original)
+++ poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/model/TestDocumentProperties.java Wed Nov 11 16:57:39 2015
@@ -19,12 +19,18 @@ package org.apache.poi.hwpf.model;
 
 import java.lang.reflect.AccessibleObject;
 import java.lang.reflect.Field;
+import java.security.AccessController;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
 import java.util.Arrays;
 
 import junit.framework.TestCase;
 
 import org.apache.poi.hwpf.HWPFDocFixture;
 import org.apache.poi.hwpf.model.types.DOPAbstractType;
+import org.apache.poi.util.SuppressForbidden;
+
+// TODO: Add DocumentProperties#equals ???
 
 public final class TestDocumentProperties
   extends TestCase
@@ -43,9 +49,21 @@ public final class TestDocumentPropertie
     DocumentProperties newDocProperties =
       new DocumentProperties(buf, 0, size);
 
-    Field[] fields = DocumentProperties.class.getSuperclass().getDeclaredFields();
-    AccessibleObject.setAccessible(fields, true);
-
+    final Field[] fields;
+    try {
+        fields = AccessController.doPrivileged(new PrivilegedExceptionAction<Field[]>() {
+            @Override
+            @SuppressForbidden("Test only")
+            public Field[] run() throws Exception {
+                final Field[] fields = DocumentProperties.class.getSuperclass().getDeclaredFields();
+                AccessibleObject.setAccessible(fields, true);
+                return fields;
+            }
+        });
+    } catch (PrivilegedActionException pae) {
+        throw pae.getException();
+    }
+    
     for (int x = 0; x < fields.length; x++)
     {
       // JaCoCo Code Coverage adds it's own field, don't look at this one here

Modified: poi/trunk/src/testcases/org/apache/poi/POITestCase.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/POITestCase.java?rev=1713891&r1=1713890&r2=1713891&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/POITestCase.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/POITestCase.java Wed Nov 11 16:57:39 2015
@@ -21,8 +21,15 @@ import static org.junit.Assert.assertFal
 import static org.junit.Assert.assertTrue;
 import static org.junit.Assert.fail;
 
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.security.AccessController;
+import java.security.PrivilegedActionException;
+import java.security.PrivilegedExceptionAction;
 import java.util.Collection;
 
+import org.apache.poi.util.SuppressForbidden;
+
 /**
  * Parent class for POI JUnit TestCases, which provide additional
  *  features 
@@ -67,4 +74,45 @@ public class POITestCase {
         }
         fail("Unable to find " + needle + " in " + haystack);
      }
+     
+     /** Utility method to get the value of a private/protected field.
+      * Only use this method in test cases!!!
+      */
+     public static <R,T> R getFieldValue(final Class<? super T> clazz, final T instance, final Class<R> fieldType, final String fieldName) {
+         try {
+            return AccessController.doPrivileged(new PrivilegedExceptionAction<R>() {
+                @Override
+                @SuppressWarnings("unchecked")
+                @SuppressForbidden("For test usage only")
+                public R run() throws Exception {
+                    Field f = clazz.getDeclaredField(fieldName);
+                    f.setAccessible(true);
+                    return (R) f.get(instance);
+                }
+            });
+         } catch (PrivilegedActionException pae) {
+             throw new AssertionError("Cannot access field '" + fieldName + "' of class " + clazz);
+         }
+     }
+     
+     /** Utility method to call a private/protected method.
+      * Only use this method in test cases!!!
+      */
+     public static <R,T> R callMethod(final Class<? super T> clazz, final T instance, final Class<R> returnType, final String methodName,
+             final Class<?>[] parameterTypes, final Object[] parameters) {
+         try {
+            return AccessController.doPrivileged(new PrivilegedExceptionAction<R>() {
+                @Override
+                @SuppressWarnings("unchecked")
+                @SuppressForbidden("For test usage only")
+                public R run() throws Exception {
+                    Method m = clazz.getDeclaredMethod(methodName, parameterTypes);
+                    m.setAccessible(true);
+                    return (R) m.invoke(instance, parameters);
+                }
+            });
+         } catch (PrivilegedActionException pae) {
+             throw new AssertionError("Cannot access method '" + methodName + "' of class " + clazz);
+         }
+     }
 }

Modified: poi/trunk/src/testcases/org/apache/poi/hssf/record/aggregates/TestSharedValueManager.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/record/aggregates/TestSharedValueManager.java?rev=1713891&r1=1713890&r2=1713891&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/record/aggregates/TestSharedValueManager.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/record/aggregates/TestSharedValueManager.java Wed Nov 11 16:57:39 2015
@@ -17,13 +17,13 @@
 
 package org.apache.poi.hssf.record.aggregates;
 
-import java.lang.reflect.Field;
 import java.util.Collection;
 import java.util.HashMap;
 
 import junit.framework.AssertionFailedError;
 import junit.framework.TestCase;
 
+import org.apache.poi.POITestCase;
 import org.apache.poi.hssf.HSSFTestDataSamples;
 import org.apache.poi.hssf.record.Record;
 import org.apache.poi.hssf.record.SharedFormulaRecord;
@@ -176,21 +176,7 @@ public final class TestSharedValueManage
 	 * {@link RowRecordsAggregate}.
 	 */
 	public static SharedValueManager extractFromRRA(RowRecordsAggregate rra) {
-		Field f;
-		try {
-			f = RowRecordsAggregate.class.getDeclaredField("_sharedValueManager");
-		} catch (NoSuchFieldException e) {
-			throw new RuntimeException(e);
-		}
-
-		f.setAccessible(true);
-		try {
-			return (SharedValueManager) f.get(rra);
-		} catch (IllegalArgumentException e) {
-			throw new RuntimeException(e);
-		} catch (IllegalAccessException e) {
-			throw new RuntimeException(e);
-		}
+		return POITestCase.getFieldValue(RowRecordsAggregate.class, rra, SharedValueManager.class, "_sharedValueManager");
 	}
 
     public void testBug52527() {

Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFName.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFName.java?rev=1713891&r1=1713890&r2=1713891&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFName.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestHSSFName.java Wed Nov 11 16:57:39 2015
@@ -23,6 +23,7 @@ import static org.junit.Assert.fail;
 
 import java.lang.reflect.Field;
 
+import org.apache.poi.POITestCase;
 import org.apache.poi.hssf.HSSFITestDataProvider;
 import org.apache.poi.hssf.HSSFTestDataSamples;
 import org.apache.poi.hssf.model.HSSFFormulaParser;
@@ -45,21 +46,7 @@ public final class TestHSSFName extends
      * @return a reference to the wrapped {@link NameRecord}
      */
     public static NameRecord getNameRecord(HSSFName definedName) {
-
-        Field f;
-        try {
-            f = HSSFName.class.getDeclaredField("_definedNameRec");
-        } catch (NoSuchFieldException e) {
-            throw new RuntimeException(e);
-        }
-        f.setAccessible(true);
-        try {
-            return (NameRecord) f.get(definedName);
-        } catch (IllegalArgumentException e) {
-            throw new RuntimeException(e);
-        } catch (IllegalAccessException e) {
-            throw new RuntimeException(e);
-        }
+        return POITestCase.getFieldValue(HSSFName.class, definedName, NameRecord.class, "_definedNameRec");
     }
 
     public TestHSSFName() {

Modified: poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestShapeGroup.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestShapeGroup.java?rev=1713891&r1=1713890&r2=1713891&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestShapeGroup.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/usermodel/TestShapeGroup.java Wed Nov 11 16:57:39 2015
@@ -18,6 +18,8 @@
 package org.apache.poi.hssf.usermodel;
 
 import junit.framework.TestCase;
+
+import org.apache.poi.POITestCase;
 import org.apache.poi.ddf.EscherContainerRecord;
 import org.apache.poi.ddf.EscherSpgrRecord;
 import org.apache.poi.hssf.HSSFTestDataSamples;
@@ -228,17 +230,7 @@ public class TestShapeGroup extends Test
     }
 
     private static EscherSpgrRecord getSpgrRecord(HSSFShapeGroup group) {
-        Field spgrField = null;
-        try {
-            spgrField = group.getClass().getDeclaredField("_spgrRecord");
-            spgrField.setAccessible(true);
-            return (EscherSpgrRecord) spgrField.get(group);
-        } catch (NoSuchFieldException e) {
-            e.printStackTrace();
-        } catch (IllegalAccessException e) {
-            e.printStackTrace();
-        }
-        return null;
+        return POITestCase.getFieldValue(HSSFShapeGroup.class, group, EscherSpgrRecord.class, "_spgrRecord");
     }
 
     public void testClearShapes(){

Modified: poi/trunk/src/testcases/org/apache/poi/poifs/storage/TestRawDataBlock.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/poifs/storage/TestRawDataBlock.java?rev=1713891&r1=1713890&r2=1713891&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/poifs/storage/TestRawDataBlock.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/poifs/storage/TestRawDataBlock.java Wed Nov 11 16:57:39 2015
@@ -20,12 +20,12 @@ package org.apache.poi.poifs.storage;
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
 import java.io.InputStream;
-import java.lang.reflect.Field;
 import java.util.Random;
 
 import junit.framework.TestCase;
 
 import org.apache.poi.util.DummyPOILogger;
+import org.apache.poi.util.POILogger;
 
 /**
  * Class to test RawDataBlock functionality
@@ -82,50 +82,53 @@ public final class TestRawDataBlock exte
 	 */
 	public void testShortConstructor() throws Exception {
 		// Get the logger to be used
+	    POILogger oldLogger = RawDataBlock.log;
 		DummyPOILogger logger = new DummyPOILogger();
-		Field fld = RawDataBlock.class.getDeclaredField("log");
-		fld.setAccessible(true);
-		fld.set(null, logger);
-		assertEquals(0, logger.logged.size());
-
-		// Test for various data sizes
-		for (int k = 1; k <= 512; k++)
-		{
-			byte[] data = new byte[ k ];
-
-			for (int j = 0; j < k; j++)
-			{
-				data[ j ] = ( byte ) j;
-			}
-			RawDataBlock block = null;
-
-			logger.reset();
-			assertEquals(0, logger.logged.size());
-
-			// Have it created
-			block = new RawDataBlock(new ByteArrayInputStream(data));
-			assertNotNull(block);
-
-			// Check for the warning is there for <512
-			if(k < 512) {
-				assertEquals(
-						"Warning on " + k + " byte short block",
-						1, logger.logged.size()
-				);
-
-				// Build the expected warning message, and check
-				String bts = k + " byte";
-				if(k > 1) {
-					bts += "s";
-				}
-
-				assertEquals(
-						"7 - Unable to read entire block; "+bts+" read before EOF; expected 512 bytes. Your document was either written by software that ignores the spec, or has been truncated!",
-						logger.logged.get(0)
-				);
-			} else {
-				assertEquals(0, logger.logged.size());
-			}
+		try {
+    		RawDataBlock.log = logger;
+    		assertEquals(0, logger.logged.size());
+    
+    		// Test for various data sizes
+    		for (int k = 1; k <= 512; k++)
+    		{
+    			byte[] data = new byte[ k ];
+    
+    			for (int j = 0; j < k; j++)
+    			{
+    				data[ j ] = ( byte ) j;
+    			}
+    			RawDataBlock block = null;
+    
+    			logger.reset();
+    			assertEquals(0, logger.logged.size());
+    
+    			// Have it created
+    			block = new RawDataBlock(new ByteArrayInputStream(data));
+    			assertNotNull(block);
+    
+    			// Check for the warning is there for <512
+    			if(k < 512) {
+    				assertEquals(
+    						"Warning on " + k + " byte short block",
+    						1, logger.logged.size()
+    				);
+    
+    				// Build the expected warning message, and check
+    				String bts = k + " byte";
+    				if(k > 1) {
+    					bts += "s";
+    				}
+    
+    				assertEquals(
+    						"7 - Unable to read entire block; "+bts+" read before EOF; expected 512 bytes. Your document was either written by software that ignores the spec, or has been truncated!",
+    						logger.logged.get(0)
+    				);
+    			} else {
+    				assertEquals(0, logger.logged.size());
+    			}
+    		}
+		} finally {
+		    RawDataBlock.log = oldLogger;
 		}
 	}
 
@@ -136,46 +139,49 @@ public final class TestRawDataBlock exte
 	 */
 	public void testSlowInputStream() throws Exception {
 		// Get the logger to be used
-		DummyPOILogger logger = new DummyPOILogger();
-		Field fld = RawDataBlock.class.getDeclaredField("log");
-		fld.setAccessible(true);
-		fld.set(null, logger);
-		assertEquals(0, logger.logged.size());
-
-		// Test for various ok data sizes
-		for (int k = 1; k < 512; k++) {
-			byte[] data = new byte[ 512 ];
-			for (int j = 0; j < data.length; j++) {
-				data[j] = (byte) j;
-			}
-
-			// Shouldn't complain, as there is enough data,
-			//  even if it dribbles through
-			RawDataBlock block =
-				new RawDataBlock(new SlowInputStream(data, k));
-			assertFalse(block.eof());
-		}
-
-		// But if there wasn't enough data available, will
-		//  complain
-		for (int k = 1; k < 512; k++) {
-			byte[] data = new byte[ 511 ];
-			for (int j = 0; j < data.length; j++) {
-				data[j] = (byte) j;
-			}
-
-			logger.reset();
-			assertEquals(0, logger.logged.size());
-
-			// Should complain, as there isn't enough data
-			RawDataBlock block =
-				new RawDataBlock(new SlowInputStream(data, k));
-			assertNotNull(block);
-			assertEquals(
-					"Warning on " + k + " byte short block",
-					1, logger.logged.size()
-			);
-		}
+        POILogger oldLogger = RawDataBlock.log;
+        DummyPOILogger logger = new DummyPOILogger();
+        try {
+            RawDataBlock.log = logger;
+     		assertEquals(0, logger.logged.size());
+    
+    		// Test for various ok data sizes
+    		for (int k = 1; k < 512; k++) {
+    			byte[] data = new byte[ 512 ];
+    			for (int j = 0; j < data.length; j++) {
+    				data[j] = (byte) j;
+    			}
+    
+    			// Shouldn't complain, as there is enough data,
+    			//  even if it dribbles through
+    			RawDataBlock block =
+    				new RawDataBlock(new SlowInputStream(data, k));
+    			assertFalse(block.eof());
+    		}
+    
+    		// But if there wasn't enough data available, will
+    		//  complain
+    		for (int k = 1; k < 512; k++) {
+    			byte[] data = new byte[ 511 ];
+    			for (int j = 0; j < data.length; j++) {
+    				data[j] = (byte) j;
+    			}
+    
+    			logger.reset();
+    			assertEquals(0, logger.logged.size());
+    
+    			// Should complain, as there isn't enough data
+    			RawDataBlock block =
+    				new RawDataBlock(new SlowInputStream(data, k));
+    			assertNotNull(block);
+    			assertEquals(
+    					"Warning on " + k + " byte short block",
+    					1, logger.logged.size()
+    			);
+    		}
+        } finally {
+            RawDataBlock.log = oldLogger;
+        }
 	}
 
 	/**

Modified: poi/trunk/src/testcases/org/apache/poi/poifs/storage/TestRawDataBlockList.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/poifs/storage/TestRawDataBlockList.java?rev=1713891&r1=1713890&r2=1713891&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/poifs/storage/TestRawDataBlockList.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/poifs/storage/TestRawDataBlockList.java Wed Nov 11 16:57:39 2015
@@ -19,12 +19,11 @@ package org.apache.poi.poifs.storage;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
-import java.lang.reflect.Field;
-
 import junit.framework.TestCase;
 
 import org.apache.poi.poifs.common.POIFSConstants;
 import org.apache.poi.util.DummyPOILogger;
+import org.apache.poi.util.POILogger;
 
 /**
  * Class to test RawDataBlockList functionality
@@ -57,26 +56,29 @@ public final class TestRawDataBlockList
      */
     public void testShortConstructor() throws Exception {
         // Get the logger to be used
+        POILogger oldLogger = RawDataBlock.log;
         DummyPOILogger logger = new DummyPOILogger();
-        Field fld = RawDataBlock.class.getDeclaredField("log");
-        fld.setAccessible(true);
-        fld.set(null, logger);
-        assertEquals(0, logger.logged.size());
-
-        // Test for various short sizes
-        for (int k = 2049; k < 2560; k++)
-        {
-            byte[] data = new byte[ k ];
-
-            for (int j = 0; j < k; j++)
+        try {
+            RawDataBlock.log = logger;
+            assertEquals(0, logger.logged.size());
+    
+            // Test for various short sizes
+            for (int k = 2049; k < 2560; k++)
             {
-                data[ j ] = ( byte ) j;
+                byte[] data = new byte[ k ];
+    
+                for (int j = 0; j < k; j++)
+                {
+                    data[ j ] = ( byte ) j;
+                }
+    
+                // Check we logged the error
+                logger.reset();
+                new RawDataBlockList(new ByteArrayInputStream(data), POIFSConstants.SMALLER_BIG_BLOCK_SIZE_DETAILS);
+                assertEquals(1, logger.logged.size());
             }
-
-            // Check we logged the error
-            logger.reset();
-            new RawDataBlockList(new ByteArrayInputStream(data), POIFSConstants.SMALLER_BIG_BLOCK_SIZE_DETAILS);
-            assertEquals(1, logger.logged.size());
+        } finally {
+            RawDataBlock.log = oldLogger;
         }
     }
 }

Modified: poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestMathX.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestMathX.java?rev=1713891&r1=1713890&r2=1713891&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestMathX.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/ss/formula/functions/TestMathX.java Wed Nov 11 16:57:39 2015
@@ -947,15 +947,4 @@ public class TestMathX extends AbstractN
         d = 2d/3; s = 3.33;
         assertEquals("floor ", 0, MathX.floor(d, s));
     }
-
-    public void testCoverage() throws Exception {
-        // get the default constructor
-        final Constructor<MathX> c = MathX.class.getDeclaredConstructor(new Class[] {});
-
-        // make it callable from the outside
-        c.setAccessible(true);
-
-        // call it
-        c.newInstance((Object[]) null);
-    }
 }

Modified: poi/trunk/src/testcases/org/apache/poi/util/TestHexDump.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/util/TestHexDump.java?rev=1713891&r1=1713890&r2=1713891&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/util/TestHexDump.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/util/TestHexDump.java Wed Nov 11 16:57:39 2015
@@ -241,19 +241,6 @@ public class TestHexDump {
     }
 
     @Test
-    public void testConstruct() throws Exception {
-        // to cover private constructor
-        // get the default constructor
-        final Constructor<HexDump> c = HexDump.class.getDeclaredConstructor(new Class[] {});
-
-        // make it callable from the outside
-        c.setAccessible(true);
-
-        // call it
-        assertNotNull(c.newInstance((Object[]) null));
-    }
-
-    @Test
     public void testMain() throws Exception {
         File file = TempFile.createTempFile("HexDump", ".dat");
         try {

Modified: poi/trunk/src/testcases/org/apache/poi/util/TestPOILogger.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/util/TestPOILogger.java?rev=1713891&r1=1713890&r2=1713891&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/util/TestPOILogger.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/util/TestPOILogger.java Wed Nov 11 16:57:39 2015
@@ -22,8 +22,6 @@ import static org.junit.Assert.assertEqu
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
-import java.lang.reflect.Field;
-
 import org.junit.Test;
 
 /**
@@ -42,11 +40,9 @@ public final class TestPOILogger extends
      */
     @Test
     public void testVariousLogTypes() throws Exception {
-        Field f = POILogFactory.class.getDeclaredField("_loggerClassName");
-        f.setAccessible(true);
-        String oldLCN = (String)f.get(null);
+        String oldLCN = POILogFactory._loggerClassName;
         try {
-            f.set(null, TestPOILogger.class.getName());
+            POILogFactory._loggerClassName = TestPOILogger.class.getName();
             POILogger log = POILogFactory.getLogger( "foo" );
             assertTrue(log instanceof TestPOILogger);
             
@@ -71,7 +67,7 @@ public final class TestPOILogger extends
             log.log(POILogger.ERROR, "log\nforging", "\nevil","\nlog");
             assertEquals("log forging evil log", tlog.lastLog);
         } finally {
-            f.set(null, oldLCN);
+            POILogFactory._loggerClassName = oldLCN;
         }
     }
 



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