[
https://issues.apache.org/jira/browse/HBASE-7579?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13555663#comment-13555663
]
Ted Yu commented on HBASE-7579:
-------------------------------
{code}
+ if(this.name == null && o.getName()!=null) {
+ return 1;
}
- return result;
+
+ if(this.name != null && o.getName()==null) {
+ return 1;
{code}
I think -1 should be returned in the first if statement.
For the changes in HTableDescriptor, looks like they were based on an earlier
patch.
{code}
- //HashSet for O(1) evaluation
- HashSet<HColumnDescriptor> otherFamiliesAsHashSet = new
HashSet<HColumnDescriptor>(other.families.values());
{code}
> HTableDescriptor equals method fails if results are returned in a different
> order
> ---------------------------------------------------------------------------------
>
> Key: HBASE-7579
> URL: https://issues.apache.org/jira/browse/HBASE-7579
> Project: HBase
> Issue Type: Bug
> Components: Admin
> Reporter: Aleksandr Shulman
> Assignee: Aleksandr Shulman
> Priority: Minor
> Fix For: 0.96.0, 0.94.5
>
> Attachments: HBASE-7579-v1.patch, HBASE-7579-v2.patch
>
>
> HTableDescriptor's compareTo function compares a set of HColumnDescriptors
> against another set of HColumnDescriptors. It iterates through both, relying
> on the fact that they will be in the same order.
> In my testing, I may have seen this issue come up, so I decided to fix it.
> It's a straightforward fix. I convert the sets into a hashset for O(1)
> lookups (at least in theory), then I check that all items in the first set
> are found in the second.
> Since the sizes are the same, we know that if all elements showed up in the
> second set, then they must be equal.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira