The test used to fail occasionally before the test method was commented out by
junit.framework.AssertionFailedError: rec2 should be null at junit.framework.Assert.fail(Assert.java:50) at junit.framework.Assert.assertTrue(Assert.java:20) at junit.framework.Assert.assertNull(Assert.java:237) at org.apache.jackrabbit.core.data.TestCaseBase.doDeleteRecordTest(TestCaseBase.java:327) at org.apache.jackrabbit.core.data.TestCaseBase.testDeleteRecord(TestCaseBase.java:192)
The main reason of this error is because the underlying backend uses asynchronous writing threads by default, which is not working well when extending org.apache.jackrabbit.core.data.TestCaseBase as mentioned in
So, it seems better to fix it again like the following like how
JCR-4005 was fixed:
- Restore the commented out block (TestCachingFDS.testDeleteRecord()).
- Provide an option to disable asynchronous writing in all the related backend implementations. e.g., disable it if asyncWritePoolSize is zero or smaller.
- In unit tests, simply disable async writing.
- is related to
JCR-3944 CachingDataStore - Disable AsyncUploadCache
JCR-4018 Consistent Async Upload Executor handling in Backend implementations
- links to