<Swing Dev> JDK 9 RFR of JDK-8046271: Fix overrides lint warnings in Apple laf code
Phil Race
philip.race at oracle.com
Mon Jun 9 23:14:31 UTC 2014
Seems reasonable to me.
-phil.
On 6/6/2014 4:42 PM, Joe Darcy wrote:
> Hello,
>
> One of the classes in the Apple laf code commits the classic mistake
> of override equals without also overriding hashCode. Please review my
> addition of a hashCode method:
>
> diff -r 717cad3f30fe
> src/macosx/classes/com/apple/laf/AquaFileSystemModel.java
> --- a/src/macosx/classes/com/apple/laf/AquaFileSystemModel.java Thu
> Jun 05 23:17:05 2014 -0700
> +++ b/src/macosx/classes/com/apple/laf/AquaFileSystemModel.java Fri
> Jun 06 16:41:20 2014 -0700
> @@ -365,8 +365,13 @@
> public boolean equals(final Object other) {
> final SortableFile otherFile = (SortableFile)other;
> return otherFile.fFile.equals(fFile);
> }
> +
> + @Override
> + public int hashCode() {
> + return Objects.hashCode(fFile);
> + }
> }
>
> class LoadFilesThread extends Thread {
> Vector<Runnable> queuedTasks = new Vector<Runnable>();
>
> Since the equals function is based on the fFile field, I made the
> hashCode based on that field as well. If fFile happens to be null
> (there is no null-check in the constructor), Objects.hashCode will
> return 0; otherwise, the hash of fFile will be returned.
>
> Thanks,
>
> -Joe
More information about the swing-dev
mailing list