[
https://issues.apache.org/jira/browse/TORQUE-351?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Thomas Vandahl updated TORQUE-351:
----------------------------------
Comment: was deleted
(was: The Mac file system only has second resolution, so this fix doesn't help.)
> Torque-Generator, runOnlyOnSourceChange
> ---------------------------------------
>
> Key: TORQUE-351
> URL: https://issues.apache.org/jira/browse/TORQUE-351
> Project: Torque
> Issue Type: Bug
> Components: Generator
> Affects Versions: 4.1
> Environment: Apache Maven 3.5.3
> (3383c37e1f9e9b3bc3df5050c29c8aff9f295297; 2018-02-24T20:49:05+01:00)
> ..
> Java version: 1.8.0_171, vendor: Oracle Corporation
> Java home: C:\java\jdk8x64\jre
> Default locale: de_DE, platform encoding: Cp1252
> OS name: "windows 7", version: "6.1", arch: "amd64", family: "windows"
> Reporter: Georg Kallidis
> Assignee: Thomas Vandahl
> Priority: Major
> Fix For: 4.1
>
>
> I get an test failure in torque-generator running mvn clean test:
>
> {code:java}
> Test set: org.apache.torque.generator.control.RunOnlyOnSourceChangeTest
> -------------------------------------------------------------------------------
> Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 1.14 sec <<<
> FAILURE!
> testRunOnlyOnSourceChange(org.apache.torque.generator.control.RunOnlyOnSourceChangeTest)
> Time elapsed: 1.14 sec <<< FAILURE!
> java.lang.AssertionError: Tue Jul 03 11:13:31 CEST 2018 not equal to Tue Jul
> 03 11:13:32 CEST 2018 expected:<1530609211675> but was:<1530609212737>
> at org.junit.Assert.fail(Assert.java:91)
> at org.junit.Assert.failNotEquals(Assert.java:645)
> at org.junit.Assert.assertEquals(Assert.java:126)
> at org.junit.Assert.assertEquals(Assert.java:470)
> at
> org.apache.torque.generator.control.RunOnlyOnSourceChangeTest.testRunOnlyOnSourceChange(RunOnlyOnSourceChangeTest.java:112)
> {code}
> It fails at this line (the first teste after initialization and the content
> was moved)
>
>
> {code:java}
> assertTrue(unchangedTargetFile1LastModified == assertFile(targetDir1,
> "unchangedOutput.txt", "unchangedValue"));
> {code}
>
> Apparently unchangedOutput.txt should not have changed the lastModified....
> (I expanded the assert to get a little more information.) The reported time
> difference (about 1000msec) is due to
> {code:java}
> Thread.sleep(1000);
> {code}
> in the test and is apparently only there because checkSourceModified returns
> true (I read TORQUE-338, this might be also still another issue), i.e. it's
> not the reason, why itt fails, but a consequence of it.
> Investigating the source code I found, that, if I comment out this
>
> {code:java}
> if (lastGenerationTime.before(sourceLastModified))
> {
> log.debug("checkSourceModified(): "
> + "lastGenerationTime was before source was modified ("
> + lastGenerationTime
> + " < "
> + sourceLastModified
> + "), return true");
> sourceModifiedCache.put(sourceChangeKey, true);
> return true;
> }
> {code}
> in
> {noformat}
> org.apache.torque.generator.control.Controller.checkSourceModified(Source,
> ControllerState, UnitConfiguration){noformat}
> which is called, if _isRunOnlyOnSourceChange_ is true for the
> unitConfiguration, the failure is gone.
> The time difference there between lastGenerationTime and sourceLastModified
> is alwasy below 100ms (sometimes only 25ms), and might be due to the OS
> environment. This might be a windows problem? One solution might be to remove
> the milliseconds.
> If I replace the code with
> {code:java}
> final GregorianCalendar gcLastGenerationTime = new GregorianCalendar();
> gcLastGenerationTime.setTime( lastGenerationTime );
> gcLastGenerationTime.set(Calendar.MILLISECOND, 0);
> final GregorianCalendar gcSourceLastModified = new GregorianCalendar();
> gcSourceLastModified.setTime( sourceLastModified );
> gcSourceLastModified.set(Calendar.MILLISECOND, 0);
> if (gcLastGenerationTime.before(gcSourceLastModified))
> {code}
> all the tests run successfully.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]