> The implementation of `Win32ShellFolder2.compareTo` is inconsistent: there 
> are cases where  
> `a < b & b < c but a == c`  
> which *violates its general contract*.
> 
> In particular, it happens for the personal folder (*Documents*) if it is 
> listed *twice*: as a special and as a regular folder.
> 
> The evaluation performed by the submitter of the bug provided enough details 
> to create a test, reproduce the problem and finally resolve it.
> 
> Without the fix, the regression test always fails:
> 
> a < b & b < c but a >= c
> where
>   a = C:\Users<user>\Documents(true)
>   b = C:\Users<user>(false)
>   c = C:\Users<user>\Documents(false)
> 
> as well as for the reverse case: `a > b & b > c`.
> 
> How it is possible to have the same folder in a list of files twice remains 
> unknown. I believe it is another bug in JDK, however, no one has been able to 
> reproduce it so far.

Alexey Ivanov has updated the pull request incrementally with one additional 
commit since the last revision:

  Handle fakePersonal on Windows 10
  
  The desktop folder on Windows 10 does not include
  the Personal (Documents) folder.

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/18126/files
  - new: https://git.openjdk.org/jdk/pull/18126/files/7c442382..7bccc847

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=18126&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=18126&range=00-01

  Stats: 4 lines in 1 file changed: 4 ins; 0 del; 0 mod
  Patch: https://git.openjdk.org/jdk/pull/18126.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/18126/head:pull/18126

PR: https://git.openjdk.org/jdk/pull/18126

Reply via email to