Description
When calculating snapshot diff, the metadata comparisons for Files and Directories are doing object reference equality (==) check instead of the equals() check. So, a file with the ACL set exactly same as the old one will still be flagged as changed.
INodeFile and SnapshotCopy #metadataEquals()
@Override public boolean metadataEquals(INodeFileAttributes other) { return other != null && getHeaderLong()== other.getHeaderLong() && getPermissionLong() == other.getPermissionLong() && getAclFeature() == other.getAclFeature() && getXAttrFeature() == other.getXAttrFeature(); }
INodeDirectory, SnapshotCopy #metadataEquals()
@Override public boolean metadataEquals(INodeDirectoryAttributes other) { return other != null && getQuotaCounts().equals(other.getQuotaCounts()) && getPermissionLong() == other.getPermissionLong() && getAclFeature() == other.getAclFeature() && getXAttrFeature() == other.getXAttrFeature(); }