Author: gk Date: Fri Oct 25 15:09:56 2019 New Revision: 1868939 URL: http://svn.apache.org/viewvc?rev=1868939&view=rev Log: - fix issue delete directory deadlock in TestProcessing
Modified: db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/TestProcessing.java Modified: db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/TestProcessing.java URL: http://svn.apache.org/viewvc/db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/TestProcessing.java?rev=1868939&r1=1868938&r2=1868939&view=diff ============================================================================== --- db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/TestProcessing.java (original) +++ db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/TestProcessing.java Fri Oct 25 15:09:56 2019 @@ -31,6 +31,7 @@ import java.io.InputStreamReader; import java.io.Reader; import java.nio.charset.Charset; import java.nio.charset.StandardCharsets; +import java.nio.file.Files; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; @@ -80,11 +81,11 @@ public class TestProcessing } { final File generatedSqlDir = new File(testRoot, "generated-sql"); - FileUtils.deleteDirectory(generatedSqlDir); + deleteFilesInDirectory(generatedSqlDir); } { final File generatedXdocsDir = new File(testRoot, "generated-xdocs"); - FileUtils.deleteDirectory(generatedXdocsDir); + deleteDirectory(generatedXdocsDir); } } @@ -136,8 +137,8 @@ public class TestProcessing { File generationFolder = new File("target/generated-sql"); File generationFolder2 = new File("target/generated-sql-2"); - FileUtils.deleteDirectory(generationFolder); - FileUtils.deleteDirectory(generationFolder2); + deleteFilesInDirectory(generationFolder); + deleteFilesInDirectory(generationFolder2); final Controller controller = new Controller(); final List<UnitDescriptor> unitDescriptors = new ArrayList<>(); @@ -183,8 +184,8 @@ public class TestProcessing { File generationFolder = new File("target/generated-sql"); File generationFolder2 = new File("target/generated-sql-2"); - FileUtils.deleteDirectory(generationFolder); - FileUtils.deleteDirectory(generationFolder2); + deleteFilesInDirectory(generationFolder); + deleteFilesInDirectory(generationFolder2); final Controller controller = new Controller(); final List<UnitDescriptor> unitDescriptors = new ArrayList<>(); @@ -237,8 +238,9 @@ public class TestProcessing { File generationFolder = new File("target/generated-docs"); File generationFolder2 = new File("target/generated-docs-2"); - FileUtils.deleteDirectory(generationFolder); - FileUtils.deleteDirectory(generationFolder2); + + deleteDirectory(generationFolder); + deleteDirectory(generationFolder2); final Controller controller = new Controller(); final List<UnitDescriptor> unitDescriptors = new ArrayList<>(); @@ -295,8 +297,9 @@ public class TestProcessing { File generationFolder = new File("target/generated-xdocs"); File generationFolder2 = new File("target/generated-xdocs-2"); - FileUtils.deleteDirectory(generationFolder); - FileUtils.deleteDirectory(generationFolder2); + + deleteDirectory(generationFolder); + deleteDirectory(generationFolder2); final Controller controller = new Controller(); final List<UnitDescriptor> unitDescriptors = new ArrayList<>(); @@ -329,14 +332,15 @@ public class TestProcessing assertFalse(generationFolder2.exists()); } - @ParameterizedTest - @ValueSource(strings = { "mysql", "oracle", "mssql", "postgresql", "hsqldb", "derby" } ) + @ParameterizedTest // "mysql", "oracle", "postgresql", "hsqldb", "derby", + @ValueSource(strings = { "mysql", "oracle", "postgresql", "hsqldb", "derby", "mssql" } ) public void testSqlDdlTemplates(String dbType) throws Exception { File generationFolder = new File("target/generated-sql"); File generationFolder2 = new File("target/generated-sql-2"); - FileUtils.deleteDirectory(generationFolder); - FileUtils.deleteDirectory(generationFolder2); + + deleteFilesInDirectory(generationFolder); + deleteFilesInDirectory(generationFolder2); final Controller controller = new Controller(); final List<UnitDescriptor> unitDescriptors = new ArrayList<>(); @@ -393,20 +397,55 @@ public class TestProcessing // charset); // auto close file input stream boolean isEqual = false; // delay assert - try (Reader actualReader =new InputStreamReader(new FileInputStream(actualFilename), charset) ) { + try (Reader actualReader = new InputStreamReader(new FileInputStream(actualFilename), charset) ) { isEqual = IOUtils.contentEqualsIgnoreEOL(new InputStreamReader(IOUtils.toInputStream(expected, charset)), actualReader) ; } + // read again to get details if (!isEqual) { - //check lines - List<String> genSchema = IOUtils.readLines( - new InputStreamReader(new FileInputStream(actualFilename), charset) ); - int index= 0; - for (String line : genSchema) { - assertTrue(expected.contains(line), line + " is not in expected file: "+ expectedFilename); - index++; - } + try (Reader actualReader = new InputStreamReader(new FileInputStream(actualFilename), charset) ) { + //check lines + List<String> genSchema = IOUtils.readLines( actualReader ); + int lastLineIndex = 0, lineNr = 0; + for (String line : genSchema) { + lineNr++; + assertTrue(expected.contains(line), actualFilename + "(line: "+ lineNr + "):\r\n'" + line + "'\r\nis not in expected file: "+ expectedFilename + " after:\r\n" + expected.substring(lastLineIndex)); + lastLineIndex = expected.indexOf(line);// is found + } + } + } + } + + private void deleteDirectory(final File generatedDir) throws IOException { + try { + FileUtils.deleteDirectory(generatedDir); + } catch (Exception e) { + Files.walk(generatedDir.toPath()) + .filter(f -> f.toFile().isFile()) + .forEach(file -> { + try { + Files.delete(file); + } catch (IOException e1) { + throw new RuntimeException(e1); + } + }); + //Files.delete(); + } + } + + private void deleteFilesInDirectory(final File generatedDir) throws IOException { + if (!generatedDir.exists()) { + return; } + Files.walk(generatedDir.toPath()) + .filter(f -> f.toFile().isFile()) + .forEach(file -> { + try { + Files.delete(file); + } catch (IOException e1) { + throw new RuntimeException(e1); + } + }); } } --------------------------------------------------------------------- To unsubscribe, e-mail: torque-dev-unsubscr...@db.apache.org For additional commands, e-mail: torque-dev-h...@db.apache.org