You are viewing a plain text version of this content. The canonical link for it is here.
Posted to torque-dev@db.apache.org by gk...@apache.org on 2019/10/25 15:09:56 UTC
svn commit: r1868939 -
/db/torque/torque4/trunk/torque-templates/src/test/java/org/apache/torque/templates/TestProcessing.java
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-unsubscribe@db.apache.org
For additional commands, e-mail: torque-dev-help@db.apache.org