[ 
https://issues.apache.org/jira/browse/HBASE-24482?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Michael Stack resolved HBASE-24482.
-----------------------------------
    Fix Version/s: hbase-operator-tools-1.1.0
     Release Note: Make it so tests and compile works against hbase-2.3.x as 
well as hbase-2.1.x.
         Assignee: Michael Stack
       Resolution: Fixed

Resolving. Pushed w/ below commit:
{code}
commit 8d716173b6f713d3b375f9eef18189cf2f1a3745 (HEAD -> master, origin/master, 
origin/HEAD)
Author: stack <st...@apache.org>
Date:   Wed Jun 17 09:49:32 2020 -0700

    HBASE-24482 [hbase-operator-tools] build of hbck2 fails with HBase 
branch-2.3, due to missing dependencies

    Make it so we compile and tests pass against hbase-2.3.x as
    well as 2.1.x.

    Remove use of @Nullable -- nice-to-have but dodgy provenance.

    Use CommonFSUtils instead of FSUtils as latter no longer subclasses
    CommonFSUtils whose utility we make use of in our import of hbck1
    functionality (TODO: Undo this reliance on IA.Private)

    hbase-hbck2/src/main/java/org/apache/hbase/FileSystemFsck.java
    hbase-hbck2/src/main/java/org/apache/hbase/FsRegionsMetaRecoverer.java
    hbase-hbck2/src/main/java/org/apache/hbase/hbck1/HBaseFsck.java
    hbase-hbck2/src/main/java/org/apache/hbase/hbck1/HBaseFsckRepair.java
    hbase-hbck2/src/main/java/org/apache/hbase/hbck1/HFileCorruptionChecker.java
    hbase-hbck2/src/main/java/org/apache/hbase/hbck1/OfflineMetaRepair.java
    hbase-hbck2/src/test/java/org/apache/hbase/TestHBCK2.java
     s/CommonFSUtils/FSUtils/g

    hbase-hbck2/src/main/java/org/apache/hbase/HBCKMetaTableAccessor.java
     Purge @Nullable usage.

    hbase-hbck2/src/test/java/org/apache/hbase/TestSchedulingRecoveries.java
     Remove test that behaves differently between 2.1.x and 2.3.x hbase.

    hbase-tools/src/test/java/org/apache/hbase/TestRegionsMerger.java
     Amend test where merging works differently between hbase-2.3.x and
     hbase-2.1.x (2.3 does more protective checks).

{code}

> [hbase-operator-tools] build of hbck2 fails with HBase branch-2.3, due to 
> missing dependencies
> ----------------------------------------------------------------------------------------------
>
>                 Key: HBASE-24482
>                 URL: https://issues.apache.org/jira/browse/HBASE-24482
>             Project: HBase
>          Issue Type: Bug
>          Components: hbase-operator-tools
>    Affects Versions: hbase-operator-tools-1.1.0
>            Reporter: Matthew Foley
>            Assignee: Michael Stack
>            Priority: Major
>             Fix For: hbase-operator-tools-1.1.0
>
>         Attachments: 
> 0001-HBASE-24482-hbase-operator-tools-build-of-hbck2-fail.patch, 
> HBASE-24482_compile_error.log, HBASE-24482_missing_symbols_part_2.log
>
>
> If we do a local build of the current HBase branch-2.3 as version 
> 2.3.0-SNAPSHOT, and 'mvn install' it in the local maven repository, 
> then attempt to build hbase-operator-tools master branch, with 
> -Dhbase.version=2.3.0-SNAPSHOT, 
> the HBCK2 class file HBCKMetaTableAccessor.java (line 25) fails to compile 
> with error: "package edu.umd.cs.findbugs.annotations does not exist", 
> followed by multiple instances of missing "symbol: class Nullable".  (A 
> longer log extract is attached.)
> It would appear the default HBase version 2.1.6 made this dependency package 
> available in some manner, but the newer HBase does not.
> *Later Edit:* After addressing this missing dependency (see comment of 5 June 
> below), it unmasked a bunch more, in the hbck1 code path.  Please see second 
> attachment.
> If the @Nullable annotation is still needed, it may be sufficient to simply 
> add it to the hbase-operator-tools pom.xml file, so maven will load it.  
> However, it is actually deprecated in the current documentation for 
> edu.umd.cs.findbugs.annotations. Various commentary online suggest that we 
> should be using the similar jsr305.jar (*{{javax.annotation)}}* instead; see 
> eg
>  * 
> [https://stackoverflow.com/questions/4963300/which-notnull-java-annotation-should-i-use]
>  Does anyone know if that was HBase's approach?



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to