From 314b9f60ded0d6b195a6e199138033ba018c833c Mon Sep 17 00:00:00 2001 From: Andreas Beeker Date: Fri, 5 Sep 2014 00:31:47 +0000 Subject: [PATCH] Bug 56913 - Replace usages of o.a.p.util.ArrayUtil.copyOf* methods with replacements from j.u.Arrays git-svn-id: https://svn.apache.org/repos/asf/poi/trunk@1622589 13f79535-47bb-0310-9956-ffa450edef68 --- .../apache/poi/hssf/record/DConRefRecord.java | 7 +- .../poi/hssf/record/DrawingGroupRecord.java | 2 +- src/java/org/apache/poi/util/ArrayUtil.java | 85 ------------------- .../poi/xwpf/usermodel/TestXWPFDocument.java | 4 +- .../poi/hwpf/model/NilPICFAndBinData.java | 7 +- .../src/org/apache/poi/hwpf/model/PlfLfo.java | 5 +- .../src/org/apache/poi/hwpf/model/Sttb.java | 5 +- .../poi/hssf/record/TestDConRefRecord.java | 3 +- 8 files changed, 17 insertions(+), 101 deletions(-) diff --git a/src/java/org/apache/poi/hssf/record/DConRefRecord.java b/src/java/org/apache/poi/hssf/record/DConRefRecord.java index 629dc00e51..deccff347b 100644 --- a/src/java/org/apache/poi/hssf/record/DConRefRecord.java +++ b/src/java/org/apache/poi/hssf/record/DConRefRecord.java @@ -18,10 +18,11 @@ */ package org.apache.poi.hssf.record; -import org.apache.poi.util.ArrayUtil; import org.apache.poi.util.LittleEndian; import org.apache.poi.util.LittleEndianOutput; +import java.util.Arrays; + /** * DConRef records specify a range in a workbook (internal or external) that serves as a data source * for pivot tables or data consolidation. @@ -273,7 +274,7 @@ public class DConRefRecord extends StandardRecord */ public byte[] getPath() { - return ArrayUtil.copyOf(path, path.length); + return Arrays.copyOf(path, path.length); } /** @@ -291,7 +292,7 @@ public class DConRefRecord extends StandardRecord { offset++; } - String out = new String(ArrayUtil.copyOfRange(path, offset, path.length)); + String out = new String(Arrays.copyOfRange(path, offset, path.length)); //UNC paths have \u0003 chars as path separators. out = out.replaceAll("\u0003", "/"); return out; diff --git a/src/java/org/apache/poi/hssf/record/DrawingGroupRecord.java b/src/java/org/apache/poi/hssf/record/DrawingGroupRecord.java index 1264b60bcc..eeddf5e21a 100644 --- a/src/java/org/apache/poi/hssf/record/DrawingGroupRecord.java +++ b/src/java/org/apache/poi/hssf/record/DrawingGroupRecord.java @@ -118,7 +118,7 @@ public final class DrawingGroupRecord extends AbstractEscherHolderRecord { writeHeader( data, offset, segmentLength ); writtenActualData += 4; offset += 4; - ArrayUtil.arraycopy( rawData, writtenRawData, data, offset, segmentLength ); + System.arraycopy( rawData, writtenRawData, data, offset, segmentLength ); offset += segmentLength; writtenRawData += segmentLength; writtenActualData += segmentLength; diff --git a/src/java/org/apache/poi/util/ArrayUtil.java b/src/java/org/apache/poi/util/ArrayUtil.java index c8d46e1341..17f6a2964a 100644 --- a/src/java/org/apache/poi/util/ArrayUtil.java +++ b/src/java/org/apache/poi/util/ArrayUtil.java @@ -106,89 +106,4 @@ public class ArrayUtil // We're done - array will now have everything moved as required } - /** - * Copies the specified array, truncating or padding with zeros (if - * necessary) so the copy has the specified length. This method is temporary - * replace for Arrays.copyOf() until we start to require JDK 1.6. - * - * @param source - * the array to be copied - * @param newLength - * the length of the copy to be returned - * @return a copy of the original array, truncated or padded with zeros to - * obtain the specified length - * @throws NegativeArraySizeException - * if newLength is negative - * @throws NullPointerException - * if original is null - */ - public static byte[] copyOf( byte[] source, int newLength ) - { - byte[] result = new byte[newLength]; - System.arraycopy( source, 0, result, 0, - Math.min( source.length, newLength ) ); - return result; - } - - /** - * Copies the specified array into specified result array, truncating or - * padding with zeros (if necessary) so the copy has the specified length. - * This method is temporary replace for Arrays.copyOf() until we start to - * require JDK 1.6. - * - * @param source - * the array to be copied - * @param result - * the array to be filled and returned - * @throws NegativeArraySizeException - * if newLength is negative - * @throws NullPointerException - * if original is null - */ - public static T[] copyOf( T[] source, T[] result ) - { - System.arraycopy( source, 0, result, 0, - Math.min( source.length, result.length ) ); - return result; - } - - /** - * Copies the specified range of the specified array into a new array. - * The initial index of the range (from) must lie between zero - * and original.length, inclusive. The value at - * original[from] is placed into the initial element of the copy - * (unless from == original.length or from == to). - * Values from subsequent elements in the original array are placed into - * subsequent elements in the copy. The final index of the range - * (to), which must be greater than or equal to from, - * may be greater than original.length, in which case - * (byte)0 is placed in all elements of the copy whose index is - * greater than or equal to original.length - from. The length - * of the returned array will be to - from. - * - * This method is temporary - * replace for Arrays.copyOfRange() until we start to require JDK 1.6. - * - * @param original the array from which a range is to be copied - * @param from the initial index of the range to be copied, inclusive - * @param to the final index of the range to be copied, exclusive. - * (This index may lie outside the array.) - * @return a new array containing the specified range from the original array, - * truncated or padded with zeros to obtain the required length - * @throws ArrayIndexOutOfBoundsException if from < 0 - * or from > original.length() - * @throws IllegalArgumentException if from > to - * @throws NullPointerException if original is null - * @since 1.6 - */ - public static byte[] copyOfRange(byte[] original, int from, int to) { - int newLength = to - from; - if (newLength < 0) - throw new IllegalArgumentException(from + " > " + to); - byte[] copy = new byte[newLength]; - System.arraycopy(original, from, copy, 0, - Math.min(original.length - from, newLength)); - return copy; - } - } diff --git a/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java b/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java index 546299e3ec..7621404b8d 100644 --- a/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java +++ b/src/ooxml/testcases/org/apache/poi/xwpf/usermodel/TestXWPFDocument.java @@ -19,6 +19,7 @@ package org.apache.poi.xwpf.usermodel; import java.io.IOException; import java.io.OutputStream; +import java.util.Arrays; import java.util.List; import junit.framework.TestCase; @@ -32,7 +33,6 @@ import org.apache.poi.openxml4j.opc.PackagePartName; import org.apache.poi.openxml4j.opc.PackageRelationship; import org.apache.poi.openxml4j.opc.PackagingURIHelper; import org.apache.poi.openxml4j.opc.TargetMode; -import org.apache.poi.util.ArrayUtil; import org.apache.poi.xwpf.XWPFTestDataSamples; import org.apache.xmlbeans.XmlCursor; import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTP; @@ -307,7 +307,7 @@ public final class TestXWPFDocument extends TestCase { String id1 = doc.addPictureData(newPic, Document.PICTURE_TYPE_JPEG); assertEquals(2,doc.getAllPackagePictures().size()); /* copy data, to avoid instance-equality */ - byte[] newPicCopy = ArrayUtil.copyOf(newPic, newPic.length); + byte[] newPicCopy = Arrays.copyOf(newPic, newPic.length); String id2 = doc.addPictureData(newPicCopy, Document.PICTURE_TYPE_JPEG); assertEquals(id1,id2); doc.getPackage().revert(); diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/NilPICFAndBinData.java b/src/scratchpad/src/org/apache/poi/hwpf/model/NilPICFAndBinData.java index 58cf567a58..918afdb3c8 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/model/NilPICFAndBinData.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/model/NilPICFAndBinData.java @@ -16,11 +16,12 @@ ==================================================================== */ package org.apache.poi.hwpf.model; -import org.apache.poi.util.ArrayUtil; import org.apache.poi.util.LittleEndian; import org.apache.poi.util.POILogFactory; import org.apache.poi.util.POILogger; +import java.util.Arrays; + public class NilPICFAndBinData { @@ -52,8 +53,8 @@ public class NilPICFAndBinData // skip the 62 ignored bytes int binaryLength = lcb - cbHeader; - this._binData = ArrayUtil.copyOfRange( data, offset + cbHeader, - offset + cbHeader + binaryLength ); + this._binData = Arrays.copyOfRange(data, offset + cbHeader, + offset + cbHeader + binaryLength); } public byte[] getBinData() diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/PlfLfo.java b/src/scratchpad/src/org/apache/poi/hwpf/model/PlfLfo.java index 6e114d8dab..5f02c1ed4a 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/model/PlfLfo.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/model/PlfLfo.java @@ -23,7 +23,6 @@ import java.util.Arrays; import java.util.NoSuchElementException; import org.apache.poi.hwpf.model.io.HWPFOutputStream; -import org.apache.poi.util.ArrayUtil; import org.apache.poi.util.LittleEndian; import org.apache.poi.util.POILogFactory; import org.apache.poi.util.POILogger; @@ -118,10 +117,10 @@ public class PlfLfo { final int newLfoMac = _lfoMac + 1; - _rgLfo = ArrayUtil.copyOf( _rgLfo, new LFO[newLfoMac] ); + _rgLfo = Arrays.copyOf(_rgLfo, newLfoMac); _rgLfo[_lfoMac + 1] = lfo; - _rgLfoData = ArrayUtil.copyOf( _rgLfoData, new LFOData[_lfoMac + 1] ); + _rgLfoData = Arrays.copyOf(_rgLfoData, newLfoMac); _rgLfoData[_lfoMac + 1] = lfoData; this._lfoMac = newLfoMac; diff --git a/src/scratchpad/src/org/apache/poi/hwpf/model/Sttb.java b/src/scratchpad/src/org/apache/poi/hwpf/model/Sttb.java index 5f721f92be..01c5d22e5d 100644 --- a/src/scratchpad/src/org/apache/poi/hwpf/model/Sttb.java +++ b/src/scratchpad/src/org/apache/poi/hwpf/model/Sttb.java @@ -16,10 +16,11 @@ ==================================================================== */ package org.apache.poi.hwpf.model; -import org.apache.poi.util.ArrayUtil; import org.apache.poi.util.LittleEndian; import org.apache.poi.util.StringUtil; +import java.util.Arrays; + /** * The STTB is a string table that is made up of a header that is followed by an * array of elements. The cData value specifies the number of elements that are @@ -64,7 +65,7 @@ public class Sttb { this._cDataLength = cDataLength; - this._data = ArrayUtil.copyOf( data, new String[data.length] ); + this._data = Arrays.copyOf(data, data.length); this._cbExtra = 0; this._extraData = null; diff --git a/src/testcases/org/apache/poi/hssf/record/TestDConRefRecord.java b/src/testcases/org/apache/poi/hssf/record/TestDConRefRecord.java index 9518f3fff2..b101a4ee2b 100644 --- a/src/testcases/org/apache/poi/hssf/record/TestDConRefRecord.java +++ b/src/testcases/org/apache/poi/hssf/record/TestDConRefRecord.java @@ -23,7 +23,6 @@ import java.io.ByteArrayOutputStream; import java.io.IOException; import java.util.Arrays; import junit.framework.TestCase; -import org.apache.poi.util.ArrayUtil; import org.apache.poi.util.LittleEndianOutputStream; /** @@ -288,7 +287,7 @@ public class TestDConRefRecord extends TestCase public void testGetPath() { DConRefRecord instance = new DConRefRecord(TestcaseRecordInputStream.create(81, data1)); - byte[] expResult = ArrayUtil.copyOfRange(data1, 9, data1.length); + byte[] expResult = Arrays.copyOfRange(data1, 9, data1.length); byte[] result = instance.getPath(); assertTrue("get path", Arrays.equals(expResult, result)); } -- 2.39.5