You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ni...@apache.org on 2015/09/01 23:46:30 UTC

svn commit: r1700677 - in /poi/trunk/src: java/org/apache/poi/hpsf/ java/org/apache/poi/hssf/usermodel/ java/org/apache/poi/ss/formula/functions/ testcases/org/apache/poi/hssf/dev/

Author: nick
Date: Tue Sep  1 21:46:30 2015
New Revision: 1700677

URL: http://svn.apache.org/r1700677
Log:
Fix some Forbidden APIs errors

Modified:
    poi/trunk/src/java/org/apache/poi/hpsf/ClassID.java
    poi/trunk/src/java/org/apache/poi/hpsf/CodePageString.java
    poi/trunk/src/java/org/apache/poi/hpsf/SpecialPropertySet.java
    poi/trunk/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java
    poi/trunk/src/java/org/apache/poi/ss/formula/functions/Dec2Hex.java
    poi/trunk/src/java/org/apache/poi/ss/formula/functions/EDate.java
    poi/trunk/src/testcases/org/apache/poi/hssf/dev/TestBiffViewer.java

Modified: poi/trunk/src/java/org/apache/poi/hpsf/ClassID.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hpsf/ClassID.java?rev=1700677&r1=1700676&r2=1700677&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hpsf/ClassID.java (original)
+++ poi/trunk/src/java/org/apache/poi/hpsf/ClassID.java Tue Sep  1 21:46:30 2015
@@ -18,15 +18,13 @@
 package org.apache.poi.hpsf;
 
 import org.apache.poi.util.HexDump;
+import org.apache.poi.util.StringUtil;
 
 /**
  *  <p>Represents a class ID (16 bytes). Unlike other little-endian
  *  type the {@link ClassID} is not just 16 bytes stored in the wrong
  *  order. Instead, it is a double word (4 bytes) followed by two
  *  words (2 bytes each) followed by 8 bytes.</p>
- *
- * @author Rainer Klute <a
- * href="mailto:klute@rainer-klute.de">&lt;klute@rainer-klute.de&gt;</a>
  */
 public class ClassID
 {
@@ -238,11 +236,9 @@ public class ClassID
      */
     public int hashCode()
     {
-        return new String(bytes).hashCode();
+        return new String(bytes, StringUtil.UTF8).hashCode();
     }
 
-
-
     /**
      * <p>Returns a human-readable representation of the Class ID in standard 
      * format <code>"{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}"</code>.</p>

Modified: poi/trunk/src/java/org/apache/poi/hpsf/CodePageString.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hpsf/CodePageString.java?rev=1700677&r1=1700676&r2=1700677&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hpsf/CodePageString.java (original)
+++ poi/trunk/src/java/org/apache/poi/hpsf/CodePageString.java Tue Sep  1 21:46:30 2015
@@ -25,6 +25,7 @@ import org.apache.poi.util.Internal;
 import org.apache.poi.util.LittleEndian;
 import org.apache.poi.util.POILogFactory;
 import org.apache.poi.util.POILogger;
+import org.apache.poi.util.StringUtil;
 
 @Internal
 class CodePageString
@@ -64,7 +65,7 @@ class CodePageString
     {
         String result;
         if ( codepage == -1 )
-            result = new String( _value );
+            result = new String( _value, StringUtil.UTF8 );
         else
             result = CodePageUtil.getStringFromCodePage(_value, codepage);
         final int terminator = result.indexOf( '\0' );
@@ -96,7 +97,7 @@ class CodePageString
     {
         String stringNT = string + "\0";
         if ( codepage == -1 )
-            _value = stringNT.getBytes();
+            _value = stringNT.getBytes(StringUtil.UTF8);
         else
             _value = CodePageUtil.getBytesInCodePage(stringNT, codepage);
     }

Modified: poi/trunk/src/java/org/apache/poi/hpsf/SpecialPropertySet.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hpsf/SpecialPropertySet.java?rev=1700677&r1=1700676&r2=1700677&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hpsf/SpecialPropertySet.java (original)
+++ poi/trunk/src/java/org/apache/poi/hpsf/SpecialPropertySet.java Tue Sep  1 21:46:30 2015
@@ -20,6 +20,7 @@ package org.apache.poi.hpsf;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.nio.charset.Charset;
 import java.util.List;
 
 import org.apache.poi.hpsf.wellknown.PropertyIDMap;
@@ -345,7 +346,7 @@ public abstract class SpecialPropertySet
                 return Long.toString( LittleEndian.getUInt(b) );
             }
             // Maybe it's a string? who knows!
-            return new String(b);
+            return new String(b, Charset.forName("ASCII"));
         }
         return propertyValue.toString();
     }

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=1700677&r1=1700676&r2=1700677&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 Tue Sep  1 21:46:30 2015
@@ -23,7 +23,9 @@ import java.io.FileNotFoundException;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.io.OutputStreamWriter;
 import java.io.PrintWriter;
+import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -1713,7 +1715,7 @@ public final class HSSFWorkbook extends
         DrawingGroupRecord r = (DrawingGroupRecord) workbook.findFirstRecordBySid( DrawingGroupRecord.sid );
         r.decode();
         List<EscherRecord> escherRecords = r.getEscherRecords();
-        PrintWriter w = new PrintWriter(System.out);
+        PrintWriter w = new PrintWriter(new OutputStreamWriter(System.out, Charset.defaultCharset()));
         for ( Iterator<EscherRecord> iterator = escherRecords.iterator(); iterator.hasNext(); )
         {
             EscherRecord escherRecord = iterator.next();

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/functions/Dec2Hex.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/functions/Dec2Hex.java?rev=1700677&r1=1700676&r2=1700677&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/functions/Dec2Hex.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/functions/Dec2Hex.java Tue Sep  1 21:46:30 2015
@@ -51,8 +51,6 @@ import org.apache.poi.ss.formula.eval.*;
  * <li>If this argument is negative, this function returns the #NUM! error value.</li>
  * <li>If this argument contains a decimal value, this function ignores the numbers to the right side of the decimal point.</li>
  * </ul>
- *
- * @author cedric dot walter @ gmail dot com
  */
 public final class Dec2Hex extends Var1or2ArgFunction implements FreeRefFunction {
 
@@ -111,7 +109,7 @@ public final class Dec2Hex extends Var1o
 
         String hex;
         if (placesNumber != 0) {
-            hex = String.format("%0"+placesNumber+"X", number1.intValue());
+            hex = String.format("%0"+placesNumber+"X", number1.intValue(), Locale.ROOT);
         }
         else {
             hex = Integer.toHexString(number1.intValue());

Modified: poi/trunk/src/java/org/apache/poi/ss/formula/functions/EDate.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/ss/formula/functions/EDate.java?rev=1700677&r1=1700676&r2=1700677&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/ss/formula/functions/EDate.java (original)
+++ poi/trunk/src/java/org/apache/poi/ss/formula/functions/EDate.java Tue Sep  1 21:46:30 2015
@@ -19,6 +19,8 @@ package org.apache.poi.ss.formula.functi
 
 import java.util.Calendar;
 import java.util.Date;
+import java.util.Locale;
+import java.util.TimeZone;
 
 import org.apache.poi.ss.formula.OperationEvaluationContext;
 import org.apache.poi.ss.formula.eval.BlankEval;
@@ -33,6 +35,12 @@ import org.apache.poi.ss.usermodel.DateU
  * Implementation for Excel EDATE () function.
  */
 public class EDate implements FreeRefFunction {
+    /**
+     * Excel doesn't store TimeZone information in the file, so if in doubt,
+     *  use UTC to perform calculations
+     */
+    private static final TimeZone DEFAULT_TIMEZONE = TimeZone.getTimeZone("UTC");
+
     public static final FreeRefFunction instance = new EDate();
 
     public ValueEval evaluate(ValueEval[] args, OperationEvaluationContext ec) {
@@ -44,7 +52,7 @@ public class EDate implements FreeRefFun
             int offsetInMonthAsNumber = (int) getValue(args[1]);
 
             Date startDate = DateUtil.getJavaDate(startDateAsNumber);
-            Calendar calendar = Calendar.getInstance();
+            Calendar calendar = Calendar.getInstance(DEFAULT_TIMEZONE, Locale.ROOT);
             calendar.setTime(startDate);
             calendar.add(Calendar.MONTH, offsetInMonthAsNumber);
             return new NumberEval(DateUtil.getExcelDate(calendar.getTime()));

Modified: poi/trunk/src/testcases/org/apache/poi/hssf/dev/TestBiffViewer.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/hssf/dev/TestBiffViewer.java?rev=1700677&r1=1700676&r2=1700677&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/hssf/dev/TestBiffViewer.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/hssf/dev/TestBiffViewer.java Tue Sep  1 21:46:30 2015
@@ -19,12 +19,9 @@ package org.apache.poi.hssf.dev;
 import java.io.File;
 import java.io.IOException;
 import java.io.InputStream;
-import java.io.PrintStream;
+import java.io.PrintWriter;
 
-import org.apache.poi.POIDataSamples;
 import org.apache.poi.poifs.filesystem.NPOIFSFileSystem;
-import org.junit.Ignore;
-import org.junit.Test;
 
 public class TestBiffViewer extends BaseXLSIteratingTest {
 	static {
@@ -52,7 +49,7 @@ public class TestBiffViewer extends Base
 		InputStream is = BiffViewer.getPOIFSInputStream(fs);
 		try {
 			// use a NullOutputStream to not write the bytes anywhere for best runtime 
-			BiffViewer.runBiffViewer(new PrintStream(NULL_OUTPUT_STREAM), is, true, true, true, false);
+			BiffViewer.runBiffViewer(new PrintWriter(NULL_OUTPUT_STREAM), is, true, true, true, false);
 		} finally {
 			is.close();
 			fs.close();



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