avik 2003/10/26 18:01:21 Modified: src/java/org/apache/poi/hssf/record BoundSheetRecord.java src/java/org/apache/poi/hssf/usermodel HSSFWorkbook.java src/testcases/org/apache/poi/hssf/record TestBoundSheetRecord.java src/testcases/org/apache/poi/hssf/usermodel TestCloneSheet.java Log: fix for 13921, sync from branch Revision Changes Path 1.10 +12 -0 jakarta-poi/src/java/org/apache/poi/hssf/record/BoundSheetRecord.java Index: BoundSheetRecord.java =================================================================== RCS file: /home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/record/BoundSheetRecord.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- BoundSheetRecord.java 19 Aug 2003 14:07:40 -0000 1.9 +++ BoundSheetRecord.java 27 Oct 2003 02:01:21 -0000 1.10 @@ -194,10 +194,22 @@ /** * Set the sheetname for this sheet. (this appears in the tabs at the bottom) * @param sheetname the name of the sheet + * @thows IllegalArgumentException if sheet name will cause excel to crash. */ public void setSheetname( String sheetname ) { + + if ((sheetname == null) || (sheetname.length()==0) + || (sheetname.length()>31) + || (sheetname.indexOf("/") > -1) + || (sheetname.indexOf("\\") > -1) + || (sheetname.indexOf("?") > -1) + || (sheetname.indexOf("*") > -1) + || (sheetname.indexOf("]") > -1) + || (sheetname.indexOf("[") > -1) ){ + throw new IllegalArgumentException("Sheet name cannot be blank, greater than 31 chars, or contain any of /\\*?[]"); + } field_5_sheetname = sheetname; } 1.29 +8 -2 jakarta-poi/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java Index: HSSFWorkbook.java =================================================================== RCS file: /home/cvs/jakarta-poi/src/java/org/apache/poi/hssf/usermodel/HSSFWorkbook.java,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- HSSFWorkbook.java 26 Sep 2003 02:34:42 -0000 1.28 +++ HSSFWorkbook.java 27 Oct 2003 02:01:21 -0000 1.29 @@ -270,7 +270,9 @@ /** - * set the sheet name. + * set the sheet name. + * Will throw IllegalArgumentException if the name is greater than 31 chars + * or contains /\?*[] * @param sheet number (0 based) * @param sheet name */ @@ -371,7 +373,11 @@ windowTwo.setPaged(sheets.size() == 1); sheets.add(clonedSheet); - workbook.setSheetName(sheets.size()-1, srcName+"[1]"); + if (srcName.length()<28) { + workbook.setSheetName(sheets.size()-1, srcName+"(2)"); + }else { + workbook.setSheetName(sheets.size()-1,srcName.substring(0,28)+"(2)"); + } return clonedSheet; } return null; 1.3 +20 -0 jakarta-poi/src/testcases/org/apache/poi/hssf/record/TestBoundSheetRecord.java Index: TestBoundSheetRecord.java =================================================================== RCS file: /home/cvs/jakarta-poi/src/testcases/org/apache/poi/hssf/record/TestBoundSheetRecord.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- TestBoundSheetRecord.java 30 Apr 2003 04:39:04 -0000 1.2 +++ TestBoundSheetRecord.java 27 Oct 2003 02:01:21 -0000 1.3 @@ -92,5 +92,25 @@ assertEquals(" 2 + 2 + 4 + 2 + 1 + 1 + len(str) * 2", 24, record.getRecordSize()); } + + public void testName() { + BoundSheetRecord record = new BoundSheetRecord(); + record.setSheetname("1234567890223456789032345678904"); + assertTrue("Success", true); + try { + record.setSheetname("12345678902234567890323456789042"); + assertTrue("Should have thrown IllegalArgumentException, but didnt", false); + } catch (IllegalArgumentException e) { + assertTrue("succefully threw exception",true); + } + + try { + record.setSheetname("s//*s"); + assertTrue("Should have thrown IllegalArgumentException, but didnt", false); + } catch (IllegalArgumentException e) { + assertTrue("succefully threw exception",true); + } + + } } 1.3 +1 -1 jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestCloneSheet.java Index: TestCloneSheet.java =================================================================== RCS file: /home/cvs/jakarta-poi/src/testcases/org/apache/poi/hssf/usermodel/TestCloneSheet.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- TestCloneSheet.java 30 Apr 2003 04:38:58 -0000 1.2 +++ TestCloneSheet.java 27 Oct 2003 02:01:21 -0000 1.3 @@ -79,7 +79,7 @@ s.addMergedRegion(new Region((short)0,(short)0,(short)1,(short)1)); b.cloneSheet(0); } - catch(Exception e){fail(e.getMessage());} + catch(Exception e){e.printStackTrace();fail(e.getMessage());} } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]