FLUME-2014: Race condition when using local timestamp with BucketPath
Review Request #10699 - Created April 22, 2013 and updated
This patch changes the behavior of the BucketPath.escapeString() function to only ever call clock.currentTimeMillis() once during an invocation of the method. This prevents a race condition that can cause unexpected results in the interpolated paths.
Added unit test for the previous condition. All tests pass. Here is some output from running the new unit test without the patch: Running org.apache.flume.formatter.output.TestBucketPath Tests run: 6, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.87 sec <<< FAILURE! Results : Failed tests: testDateRace(org.apache.flume.formatter.output.TestBucketPath): Race condition detected expected:<02:0> but was:<02:0> Tests run: 6, Failures: 1, Errors: 0, Skipped: 0