[ 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)