Greetings, I am working on the next iteration of RAT and have encountered a rather strange problem. I don't know that this is an Ant issue but this seems like a reasonable place to ask.
RAT has an Ant task that we ship. In testing for that task we use the testutils package. RAT is built using Maven. We use the Junit 5 framework. The test class contains @TempDir annotated path called "testDir". 1. We create an Antfile in the testDir. 2. We instantiate a BuildFIleRule called "buildRule". 3. We call buildRule.configureProject(antFile.getPath()). The result is an exception when the Project.setBaseDir() is called and fails with a "directory does not exist" error (see call stack below). - This code works on my local Linux system. - This code works on GitHub windows systems under Java 8, 11 and 21. - This code fails on GitHub Linux systems under Java 8, 11 and 21. I have verified that before the call to "configureProject": - The tempDir exists. - The antFile exists and is in the tempDir. - The System property "TEST_ROOT_DIRECTORY" is not set, and returns null. Does anyone know why this might fail under GitHub linux? My thought is that GitHub redirects the temp to be a directory on a virtual system and that somehow the testutils is managing to escape the virtual system. Any assistance is appreciated, Claude GitHub OS: ubuntu_latest & windows_latest java 8, 11, 21 (temurin) Versions: Ant 1.10.15 Antunit 1.4.1 Ant launcher 1.10.15 Ant testutils 1.10.15 Junit 5.13.4 maven antrun plugin 3.1.0 with Ant 1.10.15 dependency Example project: https://github.com/Claudenw/creadur-rat/tree/RAT-474_fix_Eclipse_import Example PR exhibiting error: https://github.com/apache/creadur-rat/pull/505 Call stack: Basedir /tmp/junit-13375102842827554728 does not exist at org.apache.tools.ant.Project.setBaseDir(Project.java:858) at org.apache.tools.ant.Project.setBasedir(Project.java:843) at org.apache.tools.ant.helper.ProjectHelper2$ProjectHandler.onStartElement(ProjectHelper2.java:824) at org.apache.tools.ant.helper.ProjectHelper2$RootHandler.startElement(ProjectHelper2.java:575) at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:510) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:374) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl$NSContentDriver.scanRootElementHook(XMLNSDocumentScannerImpl.java:613) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:3063) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:836) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:605) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112) at java.xml/com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:534) at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:888) at java.xml/com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:824) at java.xml/com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) at java.xml/com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1216) at java.xml/com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:635) at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:280) at org.apache.tools.ant.helper.ProjectHelper2.parse(ProjectHelper2.java:182) at org.apache.tools.ant.ProjectHelper.configureProject(ProjectHelper.java:104) at org.apache.tools.ant.BuildFileRule.configureProject(BuildFileRule.java:165) at org.apache.tools.ant.BuildFileRule.configureProject(BuildFileRule.java:143) at org.apache.rat.anttasks.AbstractRatAntTaskTest.setUp(AbstractRatAntTaskTest.java:44) at org.apache.rat.anttasks.ReportOptionTest$AntOptionsProvider$BuildTask.setUp(ReportOptionTest.java:166) at org.apache.rat.anttasks.ReportOptionTest$AntOptionsProvider.generateConfig(ReportOptionTest.java:89) at org.apache.rat.test.AbstractOptionsProvider.generateConfig(AbstractOptionsProvider.java:220) at org.apache.rat.test.AbstractOptionsProvider.configTest(AbstractOptionsProvider.java:643) at org.apache.rat.test.AbstractOptionsProvider.configTest(AbstractOptionsProvider.java:666) at org.apache.rat.anttasks.ReportOptionTest.testOptionsUpdateConfig(ReportOptionTest.java:68) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at java.base/java.util.Optional.ifPresent(Optional.java:183) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:183) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655) at java.base/java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:658) at java.base/java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:274) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:195) at java.base/java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1655) at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:150) at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:173) at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) at java.base/java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:497) at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) at java.base/java.util.ArrayList.forEach(ArrayList.java:1541) -- LinkedIn: http://www.linkedin.com/in/claudewarren
