Community
Participate
Working Groups
This problem has existed forever (well maybe not that long). If a file has more than one history store state for a particular file with the same last modified time, these states should be distinguished by a counter. The logic to do this is not working correctly. As a result, all these states have the same file name, the same last modified timestamp and a counter of 0. The offending logic is found in the class HistoryStore, method accept(byte[] key, IHistoryStoreVisitor visitor, boolean visitOnPartialMatch). The if statement: if (storedKey.length - ILocalStoreConstants.SIZE_KEY_SUFFIX == key.length) { ... strips the count and lastmodified time off the stored key and them compares that length with the key passed in. The key passed in will have a lastmodified time (but not a count) and so this if statement will never be true.
Created attachment 3818 [details] Proposed Solution
Created attachment 3819 [details] Proposed addition to test suite
Proposed solution and test changes reviewed and released. These changes should be available 20030306+.
Verified in RC3.