Index: hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/MasterSnapshotVerifier.java =================================================================== --- hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/MasterSnapshotVerifier.java (revision 1578982) +++ hbase-server/src/main/java/org/apache/hadoop/hbase/master/snapshot/MasterSnapshotVerifier.java (working copy) @@ -156,24 +156,27 @@ throw new CorruptedSnapshotException(msg); } + String msg = ""; if (snapshotRegions.size() != regions.size()) { - String msg = "Regions moved during the snapshot '" + + msg = "Regions moved during the snapshot '" + ClientSnapshotDescriptionUtils.toString(snapshot) + "'. expected=" + - regions.size() + " snapshotted=" + snapshotRegions.size(); + regions.size() + " snapshotted=" + snapshotRegions.size() + "."; LOG.error(msg); - throw new CorruptedSnapshotException(msg); } for (HRegionInfo region : regions) { if (!snapshotRegions.contains(region.getEncodedName())) { // could happen due to a move or split race. - String msg = "No region directory found for region:" + region; + msg = msg + " No region directory found for region:" + region; LOG.error(msg); throw new CorruptedSnapshotException(msg, snapshot); } verifyRegion(fs, snapshotDir, region); } + if (!msg.isEmpty()) { + throw new CorruptedSnapshotException(msg); + } } /**