You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@poi.apache.org by ye...@apache.org on 2010/09/11 14:45:59 UTC

svn commit: r996136 - in /poi/trunk/src: documentation/content/xdocs/status.xml java/org/apache/poi/hssf/model/InternalWorkbook.java ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java testcases/org/apache/poi/ss/usermodel/BaseTestNamedRange.java

Author: yegor
Date: Sat Sep 11 12:45:59 2010
New Revision: 996136

URL: http://svn.apache.org/viewvc?rev=996136&view=rev
Log:
fixed inconsistent behaviour between HSSF and XSSF when creating consecutive names, see Bugzilla 49907

Modified:
    poi/trunk/src/documentation/content/xdocs/status.xml
    poi/trunk/src/java/org/apache/poi/hssf/model/InternalWorkbook.java
    poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
    poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestNamedRange.java

Modified: poi/trunk/src/documentation/content/xdocs/status.xml
URL: http://svn.apache.org/viewvc/poi/trunk/src/documentation/content/xdocs/status.xml?rev=996136&r1=996135&r2=996136&view=diff
==============================================================================
--- poi/trunk/src/documentation/content/xdocs/status.xml (original)
+++ poi/trunk/src/documentation/content/xdocs/status.xml Sat Sep 11 12:45:59 2010
@@ -34,6 +34,7 @@
 
     <changes>
         <release version="3.7-beta3" date="2010-??-??">
+           <action dev="poi-developers" type="fix">49907 - fixed inconsistent behaviour between HSSF and XSSF when creating consecutive names</action>
            <action dev="poi-developers" type="add">Add getMimeType() method to HWPF Picture, alongside existing file extension</action>
            <action dev="poi-developers" type="add">Add code for reading Ole10Native data</action>
            <action dev="poi-developers" type="add">Add getMimeType() method to HSSF/XSSF PictureData, alongside existing file extension</action>

Modified: poi/trunk/src/java/org/apache/poi/hssf/model/InternalWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/java/org/apache/poi/hssf/model/InternalWorkbook.java?rev=996136&r1=996135&r2=996136&view=diff
==============================================================================
--- poi/trunk/src/java/org/apache/poi/hssf/model/InternalWorkbook.java (original)
+++ poi/trunk/src/java/org/apache/poi/hssf/model/InternalWorkbook.java Sat Sep 11 12:45:59 2010
@@ -1863,11 +1863,6 @@ public final class InternalWorkbook {
     {
 
         LinkTable linkTable = getOrCreateLinkTable();
-        if(linkTable.nameAlreadyExists(name)) {
-            throw new IllegalArgumentException(
-                "You are trying to assign a duplicated name record: "
-                + name.getNameText());
-        }
         linkTable.addName(name);
 
         return name;
@@ -1884,7 +1879,7 @@ public final class InternalWorkbook {
 
         NameRecord name = new NameRecord(builtInName, sheetNumber);
 
-        while(linkTable.nameAlreadyExists(name)) {
+        if(linkTable.nameAlreadyExists(name)) {
             throw new RuntimeException("Builtin (" + builtInName
                     + ") already exists for sheet (" + sheetNumber + ")");
         }

Modified: poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java?rev=996136&r1=996135&r2=996136&view=diff
==============================================================================
--- poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java (original)
+++ poi/trunk/src/ooxml/java/org/apache/poi/xssf/usermodel/XSSFWorkbook.java Sat Sep 11 12:45:59 2010
@@ -465,7 +465,9 @@ public class XSSFWorkbook extends POIXML
     }
 
     public XSSFName createName() {
-        XSSFName name = new XSSFName(CTDefinedName.Factory.newInstance(), this);
+        CTDefinedName ctName = CTDefinedName.Factory.newInstance();
+        ctName.setName("");
+        XSSFName name = new XSSFName(ctName, this);
         namedRanges.add(name);
         return name;
     }

Modified: poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestNamedRange.java
URL: http://svn.apache.org/viewvc/poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestNamedRange.java?rev=996136&r1=996135&r2=996136&view=diff
==============================================================================
--- poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestNamedRange.java (original)
+++ poi/trunk/src/testcases/org/apache/poi/ss/usermodel/BaseTestNamedRange.java Sat Sep 11 12:45:59 2010
@@ -559,4 +559,29 @@ public abstract class BaseTestNamedRange
         n.setFunction(false);
         assertFalse(n.isFunctionName());
     }
+
+    public final void testDefferedSetting() {
+        Workbook wb = _testDataProvider.createWorkbook();
+        Name n1 = wb.createName();
+        assertNull(n1.getRefersToFormula());
+        assertEquals("", n1.getNameName());
+
+        Name n2 = wb.createName();
+        assertNull(n2.getRefersToFormula());
+        assertEquals("", n2.getNameName());
+
+        n1.setNameName("sale_1");
+        n1.setRefersToFormula("10");
+
+        n2.setNameName("sale_2");
+        n2.setRefersToFormula("20");
+
+        try {
+            n2.setNameName("sale_1");
+            fail("Expected exception");
+        } catch(Exception e){
+            assertEquals("The workbook already contains this name: sale_1", e.getMessage());
+        }
+
+    }
 }



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