hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ted Yu (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-7579) HTableDescriptor equals method fails if results are returned in a different order
Date Thu, 17 Jan 2013 00:30:13 GMT

    [ 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

Mime
View raw message