Author: centic
Date: Sun Apr  7 07:17:47 2019
New Revision: 1857068

URL: http://svn.apache.org/viewvc?rev=1857068&view=rev
Log:
Fix a flaky test, it seems if the document is not closed, the automatic
closing of file-handles interferes with subsequent tests, by closing the
document this flakiness seems to be gone.

Flakiness could be reproduced locally by continuously running test with IntelliJ
"run until failure" run-config option and after aprox. 17,000 test-executions!

Modified:
    
poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBug47563.java

Modified: 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBug47563.java
URL: 
http://svn.apache.org/viewvc/poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBug47563.java?rev=1857068&r1=1857067&r2=1857068&view=diff
==============================================================================
--- 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBug47563.java
 (original)
+++ 
poi/trunk/src/scratchpad/testcases/org/apache/poi/hwpf/usermodel/TestBug47563.java
 Sun Apr  7 07:17:47 2019
@@ -49,7 +49,7 @@ public class TestBug47563 {
                data.add(new Object[] {6, 1});
                data.add(new Object[] {2, 2});
                data.add(new Object[] {3, 2});
-               data.add(new Object[] {2, 3});
+               data.add(new Object[] {2, 3});  //
                data.add(new Object[] {3, 3});
 
                return data;
@@ -62,46 +62,47 @@ public class TestBug47563 {
 
                // POI apparently can't create a document from scratch,
                // so we need an existing empty dummy document
-               HWPFDocument doc = 
HWPFTestDataSamples.openSampleFile("empty.doc");
+               try (HWPFDocument doc = 
HWPFTestDataSamples.openSampleFile("empty.doc")) {
+                       Range range = doc.getRange();
+                       range.sanityCheck();
 
-               Range range = doc.getRange();
-               range.sanityCheck();
+                       Table table = range.insertTableBefore((short) columns, 
rows);
+                       table.sanityCheck();
 
-               Table table = range.insertTableBefore((short) columns, rows);
-               table.sanityCheck();
-
-               for (int rowIdx = 0; rowIdx < table.numRows(); rowIdx++) {
-                       TableRow row = table.getRow(rowIdx);
-                       row.sanityCheck();
-
-                       System.out.println("row " + rowIdx);
-                       for (int colIdx = 0; colIdx < row.numCells(); colIdx++) 
{
-                               TableCell cell = row.getCell(colIdx);
-                               cell.sanityCheck();
-
-                               System.out.println("column " + colIdx + ", num 
paragraphs "
-                                               + cell.numParagraphs());
-
-                               Paragraph par = cell.getParagraph(0);
-                               par.sanityCheck();
-
-                               par.insertBefore("" + (rowIdx * row.numCells() 
+ colIdx));
-                               par.sanityCheck();
-                               
+                       for (int rowIdx = 0; rowIdx < table.numRows(); 
rowIdx++) {
+                               TableRow row = table.getRow(rowIdx);
                                row.sanityCheck();
-                               table.sanityCheck();
-                               range.sanityCheck();
+
+                               System.out.println("row " + rowIdx);
+                               for (int colIdx = 0; colIdx < row.numCells(); 
colIdx++) {
+                                       TableCell cell = row.getCell(colIdx);
+                                       cell.sanityCheck();
+
+                                       System.out.println("column " + colIdx + 
", num paragraphs "
+                                                       + cell.numParagraphs());
+
+                                       Paragraph par = cell.getParagraph(0);
+                                       par.sanityCheck();
+
+                                       par.insertBefore("" + (rowIdx * 
row.numCells() + colIdx));
+                                       par.sanityCheck();
+
+                                       row.sanityCheck();
+                                       table.sanityCheck();
+                                       range.sanityCheck();
+                               }
                        }
-               }
 
-               String text = range.text();
-               int mustBeAfter = 0;
-               for (int i = 0; i < rows * columns; i++) {
-                       int next = text.indexOf(Integer.toString(i), 
mustBeAfter);
-                       assertTrue("Test with " + rows + "/" + columns + ": 
Should not find " + i + " but found it at " + next + " with " + mustBeAfter + " 
in " + text + "\n" +
-                                                       
text.indexOf(Integer.toString(i), mustBeAfter),
-                                       next != -1);
-                       mustBeAfter = next;
+                       String text = range.text();
+                       int mustBeAfter = 0;
+                       for (int i = 0; i < rows * columns; i++) {
+                               int next = text.indexOf(Integer.toString(i), 
mustBeAfter);
+                               assertTrue("Test with " + rows + "/" + columns 
+ ": Should not find " + i +
+                                                               " but found it 
at " + next + " with " + mustBeAfter + " in " + text + "\n" +
+                                                               
text.indexOf(Integer.toString(i), mustBeAfter),
+                                               next != -1);
+                               mustBeAfter = next;
+                       }
                }
        }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to