This is an automated email from the ASF dual-hosted git repository.

jianglongtao pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/shardingsphere.git


The following commit(s) were added to refs/heads/master by this push:
     new b3bc6f74caa Fix rules for pmd (#25242)
b3bc6f74caa is described below

commit b3bc6f74caa29b7504fef42074dbd0e76a9b18ee
Author: Liang Zhang <[email protected]>
AuthorDate: Wed Apr 19 23:53:14 2023 +0800

    Fix rules for pmd (#25242)
    
    * Fix AvoidInstanceofChecksInCatchClause rule for pmd
    
    * Fix UseCollectionIsEmpty rule for pmd
    
    * Fix LogicInversion rule for pmd
    
    * Fix BigIntegerInstantiation rule for pmd
    
    * Fix UnnecessaryAnnotationValueElement rule for pmd
    
    * Adjust pmd config
    
    * Fix rule SimplifiedTernary for pmd
    
    * Fix rule ImplicitSwitchFallThrough for pmd
    
    * Fix rule AvoidUsingHardCodedIP for pmd
    
    * Fix rule UnnecessaryFullyQualifiedName for pmd
    
    * Fix rule IdenticalCatchBranches for pmd
    
    * Fix rule TooManyMethods for pmd
    
    * Fix rule UselessQualifiedThis for pmd
---
 .../WeightReadQueryLoadBalanceAlgorithm.java       |  2 +-
 ...tWhereSegmentShadowColumnConditionIterator.java |  2 +-
 .../datetime/IntervalShardingAlgorithm.java        |  2 +-
 .../sharding/mod/ModShardingAlgorithm.java         |  2 +-
 .../aggregation/AccumulationAggregationUnit.java   |  2 +-
 .../aggregation/AverageAggregationUnit.java        |  4 ++--
 .../DistinctAverageAggregationUnit.java            |  4 ++--
 .../aggregation/DistinctSumAggregationUnit.java    |  2 +-
 .../database/schema/util/SystemSchemaUtils.java    |  2 +-
 .../ingest/InventoryDumperConfiguration.java       |  2 +-
 .../cdc/client/handler/LoginRequestHandler.java    |  1 +
 .../pipeline/cdc/util/ColumnValueConvertUtils.java |  2 +-
 .../AbstractInventoryIncrementalJobAPIImpl.java    |  3 +--
 .../AbstractDataConsistencyCalculateAlgorithm.java |  4 +---
 ...DataMatchDataConsistencyCalculateAlgorithm.java |  6 ++---
 .../pipeline/core/job/AbstractPipelineJob.java     | 22 +++++++++++-------
 .../loader/PipelineTableMetaDataUtils.java         |  2 +-
 .../client/netty/MySQLCommandPacketDecoder.java    |  1 +
 .../ingest/client/netty/MySQLNegotiateHandler.java | 26 +++++++++++-----------
 .../mode/manager/ContextManager.java               |  2 +-
 .../cluster/zookeeper/ZookeeperRepository.java     |  7 +++---
 .../proxy/backend/connector/DatabaseConnector.java |  2 +-
 .../ConvertYamlConfigurationExecutor.java          |  2 +-
 .../frontend/netty/CDCChannelInboundHandler.java   |  1 +
 src/resources/pmd.xml                              |  9 +++-----
 25 files changed, 58 insertions(+), 56 deletions(-)

diff --git 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/algorithm/loadbalance/WeightReadQueryLoadBalanceAlgorithm.java
 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/algorithm/loadbalance/WeightReadQueryLoadBalanceAlgorithm.java
index 84465422b2d..e9d487e69e0 100644
--- 
a/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/algorithm/loadbalance/WeightReadQueryLoadBalanceAlgorithm.java
+++ 
b/features/readwrite-splitting/core/src/main/java/org/apache/shardingsphere/readwritesplitting/algorithm/loadbalance/WeightReadQueryLoadBalanceAlgorithm.java
@@ -71,7 +71,7 @@ public final class WeightReadQueryLoadBalanceAlgorithm 
implements ReadQueryLoadB
     
     private double[] initWeight(final List<String> readDataSourceNames) {
         double[] result = getWeights(readDataSourceNames);
-        Preconditions.checkState(0 == result.length || 
!(Math.abs(result[result.length - 1] - 1.0D) >= ACCURACY_THRESHOLD),
+        Preconditions.checkState(!(0 != result.length && 
Math.abs(result[result.length - 1] - 1.0D) >= ACCURACY_THRESHOLD),
                 "The cumulative weight is calculated incorrectly, and the sum 
of the probabilities is not equal to 1");
         return result;
     }
diff --git 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/AbstractWhereSegmentShadowColumnConditionIterator.java
 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/AbstractWhereSegmentShadowColumnConditionIterator.java
index 3f145c240d0..2326a8e0100 100644
--- 
a/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/AbstractWhereSegmentShadowColumnConditionIterator.java
+++ 
b/features/shadow/core/src/main/java/org/apache/shardingsphere/shadow/route/engine/dml/AbstractWhereSegmentShadowColumnConditionIterator.java
@@ -32,9 +32,9 @@ import java.util.Optional;
  * Abstract shadow column condition iterator of where segment.
  */
 @RequiredArgsConstructor
-@Getter(value = AccessLevel.PROTECTED)
 public abstract class AbstractWhereSegmentShadowColumnConditionIterator 
implements Iterator<Optional<ShadowColumnCondition>> {
     
+    @Getter(AccessLevel.PROTECTED)
     private final String shadowColumn;
     
     private final Iterator<ExpressionSegment> iterator;
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/sharding/datetime/IntervalShardingAlgorithm.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/sharding/datetime/IntervalShardingAlgorithm.java
index afa68cfbeba..044d1dbd89e 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/sharding/datetime/IntervalShardingAlgorithm.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/sharding/datetime/IntervalShardingAlgorithm.java
@@ -225,7 +225,7 @@ public final class IntervalShardingAlgorithm implements 
StandardShardingAlgorith
         Month dateTimeUpperAsMonth = dateTimeUpper.query(Month::from);
         Month dateTimeLowerAsMonth = dateTimeLower.query(Month::from);
         Month calculateTimeAsView = calculateTime.query(Month::from);
-        while (!(calculateTimeAsView.getValue() > 
dateTimeUpperAsMonth.getValue()) && (calculateTimeAsView.getValue() + 
stepAmount) <= Month.DECEMBER.getValue()) {
+        while (calculateTimeAsView.getValue() <= 
dateTimeUpperAsMonth.getValue() && (calculateTimeAsView.getValue() + 
stepAmount) <= Month.DECEMBER.getValue()) {
             if (hasIntersection(Range.closedOpen(calculateTimeAsView, 
calculateTimeAsView.plus(stepAmount)), range, dateTimeLowerAsMonth, 
dateTimeUpperAsMonth)) {
                 result.addAll(getMatchedTables(calculateTimeAsView, 
availableTargetNames));
             }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/sharding/mod/ModShardingAlgorithm.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/sharding/mod/ModShardingAlgorithm.java
index c04a9bbe51d..150b7159d8f 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/sharding/mod/ModShardingAlgorithm.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/algorithm/sharding/mod/ModShardingAlgorithm.java
@@ -119,7 +119,7 @@ public final class ModShardingAlgorithm implements 
StandardShardingAlgorithm<Com
         BigInteger lower = new 
BigInteger(shardingValue.getValueRange().lowerEndpoint().toString());
         BigInteger upper = new 
BigInteger(shardingValue.getValueRange().upperEndpoint().toString());
         BigInteger shardingCountBigInter = new 
BigInteger(String.valueOf(shardingCount));
-        for (BigInteger i = lower; i.compareTo(upper) <= 0; i = i.add(new 
BigInteger("1"))) {
+        for (BigInteger i = lower; i.compareTo(upper) <= 0; i = 
i.add(BigInteger.ONE)) {
             String shardingResultSuffix = 
getShardingResultSuffix(String.valueOf(i.mod(shardingCountBigInter)));
             
ShardingAutoTableAlgorithmUtils.findMatchedTargetName(availableTargetNames, 
shardingResultSuffix, shardingValue.getDataNodeInfo()).ifPresent(result::add);
         }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/aggregation/AccumulationAggregationUnit.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/aggregation/AccumulationAggregationUnit.java
index 25bad0c2f40..fcf2de51b82 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/aggregation/AccumulationAggregationUnit.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/aggregation/AccumulationAggregationUnit.java
@@ -36,7 +36,7 @@ public final class AccumulationAggregationUnit implements 
AggregationUnit {
             return;
         }
         if (null == result) {
-            result = new BigDecimal("0");
+            result = BigDecimal.ZERO;
         }
         result = result.add(new BigDecimal(values.get(0).toString()));
     }
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/aggregation/AverageAggregationUnit.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/aggregation/AverageAggregationUnit.java
index 50c65471ad7..3a3e650808e 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/aggregation/AverageAggregationUnit.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/aggregation/AverageAggregationUnit.java
@@ -39,10 +39,10 @@ public final class AverageAggregationUnit implements 
AggregationUnit {
             return;
         }
         if (null == count) {
-            count = new BigDecimal("0");
+            count = BigDecimal.ZERO;
         }
         if (null == sum) {
-            sum = new BigDecimal("0");
+            sum = BigDecimal.ZERO;
         }
         count = count.add(new BigDecimal(values.get(0).toString()));
         sum = sum.add(new BigDecimal(values.get(1).toString()));
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/aggregation/DistinctAverageAggregationUnit.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/aggregation/DistinctAverageAggregationUnit.java
index c82c1e1a25c..150884b1e47 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/aggregation/DistinctAverageAggregationUnit.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/aggregation/DistinctAverageAggregationUnit.java
@@ -46,10 +46,10 @@ public final class DistinctAverageAggregationUnit 
implements AggregationUnit {
         }
         if (countValues.add(values.get(0)) && sumValues.add(values.get(0))) {
             if (null == count) {
-                count = new BigDecimal("0");
+                count = BigDecimal.ZERO;
             }
             if (null == sum) {
-                sum = new BigDecimal("0");
+                sum = BigDecimal.ZERO;
             }
             count = count.add(new BigDecimal(values.get(0).toString()));
             sum = sum.add(new BigDecimal(values.get(1).toString()));
diff --git 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/aggregation/DistinctSumAggregationUnit.java
 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/aggregation/DistinctSumAggregationUnit.java
index 67e97091d44..c8b1a6dca98 100644
--- 
a/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/aggregation/DistinctSumAggregationUnit.java
+++ 
b/features/sharding/core/src/main/java/org/apache/shardingsphere/sharding/merge/dql/groupby/aggregation/DistinctSumAggregationUnit.java
@@ -41,7 +41,7 @@ public final class DistinctSumAggregationUnit implements 
AggregationUnit {
         }
         if (this.values.add(values.get(0))) {
             if (null == result) {
-                result = new BigDecimal("0");
+                result = BigDecimal.ZERO;
             }
             result = result.add(new BigDecimal(values.get(0).toString()));
         }
diff --git 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SystemSchemaUtils.java
 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SystemSchemaUtils.java
index 7026b7a1c24..45e8132ad4f 100644
--- 
a/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SystemSchemaUtils.java
+++ 
b/infra/common/src/main/java/org/apache/shardingsphere/infra/metadata/database/schema/util/SystemSchemaUtils.java
@@ -48,6 +48,6 @@ public final class SystemSchemaUtils {
                 return true;
             }
         }
-        return databaseType instanceof SchemaSupportedDatabaseType ? false : 
databaseType.getSystemSchemas().contains(database.getName());
+        return !(databaseType instanceof SchemaSupportedDatabaseType) && 
databaseType.getSystemSchemas().contains(database.getName());
     }
 }
diff --git 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/api/config/ingest/InventoryDumperConfiguration.java
 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/api/config/ingest/InventoryDumperConfiguration.java
index 8e8f88d5a49..b53da97d117 100644
--- 
a/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/api/config/ingest/InventoryDumperConfiguration.java
+++ 
b/kernel/data-pipeline/api/src/main/java/org/apache/shardingsphere/data/pipeline/api/config/ingest/InventoryDumperConfiguration.java
@@ -66,6 +66,6 @@ public final class InventoryDumperConfiguration extends 
DumperConfiguration {
      * @return true when there's unique key, else false
      */
     public boolean hasUniqueKey() {
-        return null != uniqueKeyColumns && uniqueKeyColumns.size() > 0;
+        return null != uniqueKeyColumns && !uniqueKeyColumns.isEmpty();
     }
 }
diff --git 
a/kernel/data-pipeline/cdc/client/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/client/handler/LoginRequestHandler.java
 
b/kernel/data-pipeline/cdc/client/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/client/handler/LoginRequestHandler.java
index 9d787db68d6..24e4fd8fffe 100644
--- 
a/kernel/data-pipeline/cdc/client/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/client/handler/LoginRequestHandler.java
+++ 
b/kernel/data-pipeline/cdc/client/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/client/handler/LoginRequestHandler.java
@@ -72,6 +72,7 @@ public final class LoginRequestHandler extends 
ChannelInboundHandlerAdapter {
                 break;
             default:
                 ctx.fireChannelRead(msg);
+                break;
         }
     }
     
diff --git 
a/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/util/ColumnValueConvertUtils.java
 
b/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/util/ColumnValueConvertUtils.java
index c19daa12fb6..902f8bc8a7a 100644
--- 
a/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/util/ColumnValueConvertUtils.java
+++ 
b/kernel/data-pipeline/cdc/core/src/main/java/org/apache/shardingsphere/data/pipeline/cdc/util/ColumnValueConvertUtils.java
@@ -105,7 +105,7 @@ public final class ColumnValueConvertUtils {
             return BytesValue.of(ByteString.copyFrom((byte[]) object));
         }
         if (object instanceof Time) {
-            java.sql.Time time = (java.sql.Time) object;
+            Time time = (Time) object;
             long millis = (int) (time.getTime() % MILLISECONDS_PER_SECOND);
             int nanosOfSecond = (int) (millis * NANOSECONDS_PER_MILLISECOND);
             LocalTime localTime = LocalTime.of(time.getHours(), 
time.getMinutes(), time.getSeconds(), nanosOfSecond);
diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/api/impl/AbstractInventoryIncrementalJobAPIImpl.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/api/impl/AbstractInventoryIncrementalJobAPIImpl.java
index 8ac8fb404a2..e6970343b0f 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/api/impl/AbstractInventoryIncrementalJobAPIImpl.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/api/impl/AbstractInventoryIncrementalJobAPIImpl.java
@@ -159,8 +159,7 @@ public abstract class 
AbstractInventoryIncrementalJobAPIImpl extends AbstractPip
     }
     
     private JobItemIncrementalTasksProgress getIncrementalTasksProgress(final 
Collection<IncrementalTask> incrementalTasks) {
-        IncrementalTask incrementalTask = incrementalTasks.size() > 0 ? 
incrementalTasks.iterator().next() : null;
-        return new JobItemIncrementalTasksProgress(null != incrementalTask ? 
incrementalTask.getTaskProgress() : null);
+        return new JobItemIncrementalTasksProgress(incrementalTasks.isEmpty() 
? null : incrementalTasks.iterator().next().getTaskProgress());
     }
     
     private JobItemInventoryTasksProgress getInventoryTasksProgress(final 
Collection<InventoryTask> inventoryTasks) {
diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/AbstractDataConsistencyCalculateAlgorithm.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/AbstractDataConsistencyCalculateAlgorithm.java
index 4bb6c51e462..c1bb08dea72 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/AbstractDataConsistencyCalculateAlgorithm.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/AbstractDataConsistencyCalculateAlgorithm.java
@@ -54,10 +54,8 @@ public abstract class 
AbstractDataConsistencyCalculateAlgorithm implements DataC
             statement.cancel();
         } catch (final SQLFeatureNotSupportedException ex) {
             log.info("cancel is not supported: {}", ex.getMessage());
-        } catch (final SQLException ex) {
-            log.info("cancel failed: {}", ex.getMessage());
             // CHECKSTYLE:OFF
-        } catch (final RuntimeException ex) {
+        } catch (final SQLException | RuntimeException ex) {
             // CHECKSTYLE:ON
             log.info("cancel failed: {}", ex.getMessage());
         }
diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
index e85b8211b44..0a69307c9d9 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/check/consistency/algorithm/DataMatchDataConsistencyCalculateAlgorithm.java
@@ -114,13 +114,13 @@ public final class 
DataMatchDataConsistencyCalculateAlgorithm extends AbstractSt
                 calculationContext.close();
             }
             return records.isEmpty() ? Optional.empty() : Optional.of(new 
CalculatedResult(maxUniqueKeyValue, records.size(), records));
+        } catch (final PipelineSQLException ex) {
+            calculationContext.close();
+            throw ex;
             // CHECKSTYLE:OFF
         } catch (final Exception ex) {
             // CHECKSTYLE:ON
             calculationContext.close();
-            if (ex instanceof PipelineSQLException) {
-                throw (PipelineSQLException) ex;
-            }
             throw new 
PipelineTableDataConsistencyCheckLoadingFailedException(param.getSchemaName(), 
param.getLogicTableName(), ex);
         }
     }
diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/AbstractPipelineJob.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/AbstractPipelineJob.java
index 966f32c3138..95e1c7e6368 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/AbstractPipelineJob.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/job/AbstractPipelineJob.java
@@ -50,7 +50,7 @@ public abstract class AbstractPipelineJob implements 
PipelineJob {
     @Getter
     private volatile String jobId;
     
-    @Getter(value = AccessLevel.PROTECTED)
+    @Getter(AccessLevel.PROTECTED)
     private volatile PipelineJobAPI jobAPI;
     
     @Getter
@@ -70,21 +70,27 @@ public abstract class AbstractPipelineJob implements 
PipelineJob {
         try {
             doPrepare(jobItemContext);
             // CHECKSTYLE:OFF
+        } catch (final RuntimeException ex) {
+            // CHECKSTYLE:ON
+            processFailed(jobItemContext, ex);
+            throw ex;
+            // CHECKSTYLE:OFF
         } catch (final Exception ex) {
             // CHECKSTYLE:ON
-            String jobId = jobItemContext.getJobId();
-            log.error("job prepare failed, {}-{}", jobId, 
jobItemContext.getShardingItem(), ex);
-            jobAPI.persistJobItemErrorMessage(jobItemContext.getJobId(), 
jobItemContext.getShardingItem(), ex);
-            jobAPI.stop(jobId);
-            if (ex instanceof RuntimeException) {
-                throw (RuntimeException) ex;
-            }
+            processFailed(jobItemContext, ex);
             throw new RuntimeException(ex);
         }
     }
     
     protected abstract void doPrepare(PipelineJobItemContext jobItemContext) 
throws Exception;
     
+    private void processFailed(final PipelineJobItemContext jobItemContext, 
final Exception ex) {
+        String jobId = jobItemContext.getJobId();
+        log.error("job prepare failed, {}-{}", jobId, 
jobItemContext.getShardingItem(), ex);
+        jobAPI.persistJobItemErrorMessage(jobItemContext.getJobId(), 
jobItemContext.getShardingItem(), ex);
+        jobAPI.stop(jobId);
+    }
+    
     @Override
     public Optional<PipelineTasksRunner> getTasksRunner(final int 
shardingItem) {
         return Optional.ofNullable(tasksRunnerMap.get(shardingItem));
diff --git 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/loader/PipelineTableMetaDataUtils.java
 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/loader/PipelineTableMetaDataUtils.java
index c660853399f..234747bf376 100644
--- 
a/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/loader/PipelineTableMetaDataUtils.java
+++ 
b/kernel/data-pipeline/core/src/main/java/org/apache/shardingsphere/data/pipeline/core/metadata/loader/PipelineTableMetaDataUtils.java
@@ -49,7 +49,7 @@ public final class PipelineTableMetaDataUtils {
         PipelineTableMetaData tableMetaData = 
metaDataLoader.getTableMetaData(schemaName, tableName);
         ShardingSpherePreconditions.checkNotNull(tableMetaData, () -> new 
SplitPipelineJobByRangeException(tableName, "Can not get table meta data"));
         List<String> primaryKeys = tableMetaData.getPrimaryKeyColumns();
-        if (primaryKeys.size() > 0) {
+        if (!primaryKeys.isEmpty()) {
             return 
primaryKeys.stream().map(tableMetaData::getColumnMetaData).collect(Collectors.toList());
         }
         Collection<PipelineIndexMetaData> uniqueIndexes = 
tableMetaData.getUniqueIndexes();
diff --git 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLCommandPacketDecoder.java
 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLCommandPacketDecoder.java
index e11947cd5e8..7d6584d11c9 100644
--- 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLCommandPacketDecoder.java
+++ 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLCommandPacketDecoder.java
@@ -95,6 +95,7 @@ public final class MySQLCommandPacketDecoder extends 
ByteToMessageDecoder {
                 MySQLFieldCountPacket fieldCountPacket = new 
MySQLFieldCountPacket(payload);
                 currentState = States.FieldPacket;
                 internalResultSet = new InternalResultSet(fieldCountPacket);
+                break;
         }
     }
 }
diff --git 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLNegotiateHandler.java
 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLNegotiateHandler.java
index 5883f2e0ce4..d657cd2bca1 100644
--- 
a/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLNegotiateHandler.java
+++ 
b/kernel/data-pipeline/dialect/mysql/src/main/java/org/apache/shardingsphere/data/pipeline/mysql/ingest/client/netty/MySQLNegotiateHandler.java
@@ -80,19 +80,7 @@ public final class MySQLNegotiateHandler extends 
ChannelInboundHandlerAdapter {
         }
         if (msg instanceof MySQLAuthSwitchRequestPacket) {
             MySQLAuthSwitchRequestPacket authSwitchRequest = 
(MySQLAuthSwitchRequestPacket) msg;
-            byte[] authPluginResponse;
-            // TODO not support sha256_password now
-            switch 
(MySQLAuthenticationPlugin.getPluginByName(authSwitchRequest.getAuthPluginName()))
 {
-                case NATIVE_PASSWORD_AUTHENTICATION:
-                    authPluginResponse = 
PasswordEncryption.encryptWithMySQL41(password.getBytes(), 
authSwitchRequest.getAuthPluginData().getAuthenticationPluginData());
-                    break;
-                case SHA2_AUTHENTICATION:
-                    authPluginResponse = 
PasswordEncryption.encryptWithSha2(password.getBytes(), 
authSwitchRequest.getAuthPluginData().getAuthenticationPluginData());
-                    break;
-                default:
-                    authPluginResponse = password.getBytes();
-            }
-            ctx.channel().writeAndFlush(new 
MySQLAuthSwitchResponsePacket(authPluginResponse));
+            ctx.channel().writeAndFlush(new 
MySQLAuthSwitchResponsePacket(getAuthPluginResponse(authSwitchRequest)));
             seed = 
authSwitchRequest.getAuthPluginData().getAuthenticationPluginData();
             return;
         }
@@ -111,6 +99,18 @@ public final class MySQLNegotiateHandler extends 
ChannelInboundHandlerAdapter {
         throw new RuntimeException(error.getErrorMessage());
     }
     
+    private byte[] getAuthPluginResponse(final MySQLAuthSwitchRequestPacket 
authSwitchRequest) throws NoSuchAlgorithmException {
+        // TODO not support sha256_password now
+        switch 
(MySQLAuthenticationPlugin.getPluginByName(authSwitchRequest.getAuthPluginName()))
 {
+            case NATIVE_PASSWORD_AUTHENTICATION:
+                return 
PasswordEncryption.encryptWithMySQL41(password.getBytes(), 
authSwitchRequest.getAuthPluginData().getAuthenticationPluginData());
+            case SHA2_AUTHENTICATION:
+                return PasswordEncryption.encryptWithSha2(password.getBytes(), 
authSwitchRequest.getAuthPluginData().getAuthenticationPluginData());
+            default:
+                return password.getBytes();
+        }
+    }
+    
     private void handleCachingSha2Auth(final ChannelHandlerContext ctx, final 
MySQLAuthMoreDataPacket authMoreData) {
         // how caching_sha2_password works: 
https://dev.mysql.com/doc/dev/mysql-server/8.0.11/page_caching_sha2_authentication_exchanges.html#sect_caching_sha2_info
         if (!publicKeyRequested) {
diff --git 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
index 25644ab3af8..e169c26e33e 100644
--- 
a/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
+++ 
b/mode/core/src/main/java/org/apache/shardingsphere/mode/manager/ContextManager.java
@@ -686,7 +686,7 @@ public final class ContextManager implements AutoCloseable {
     public void updateClusterState(final String status) {
         try {
             clusterStateContext.switchState(ClusterState.valueOf(status));
-        } catch (IllegalArgumentException ignore) {
+        } catch (final IllegalArgumentException ignore) {
         }
     }
     
diff --git 
a/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/ZookeeperRepository.java
 
b/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/ZookeeperRepository.java
index 298e97cc372..72de244a289 100644
--- 
a/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/ZookeeperRepository.java
+++ 
b/mode/type/cluster/repository/provider/zookeeper/src/main/java/org/apache/shardingsphere/mode/repository/cluster/zookeeper/ZookeeperRepository.java
@@ -207,13 +207,12 @@ public final class ZookeeperRepository implements 
ClusterPersistRepository, Inst
     public void persistExclusiveEphemeral(final String key, final String 
value) {
         try {
             
client.create().creatingParentsIfNeeded().withMode(CreateMode.EPHEMERAL).forPath(key,
 value.getBytes(StandardCharsets.UTF_8));
+        } catch (final NodeExistsException ex) {
+            throw new ClusterPersistRepositoryException(ex);
             // CHECKSTYLE:OFF
         } catch (final Exception ex) {
-            // CHECKSTYLE:ON
-            if (ex instanceof NodeExistsException) {
-                throw new ClusterPersistRepositoryException(ex);
-            }
             ZookeeperExceptionHandler.handleException(ex);
+            // CHECKSTYLE:ON
         }
     }
     
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnector.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnector.java
index 01fa803bea7..ae7508e168c 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnector.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/connector/DatabaseConnector.java
@@ -132,7 +132,7 @@ public final class DatabaseConnector implements 
DatabaseBackendHandler {
         this.queryContext = queryContext;
         this.backendConnection = backendConnection;
         if (sqlStatementContext instanceof CursorAvailable) {
-            
DatabaseConnector.this.prepareCursorStatementContext((CursorAvailable) 
sqlStatementContext, backendConnection.getConnectionSession());
+            prepareCursorStatementContext((CursorAvailable) 
sqlStatementContext, backendConnection.getConnectionSession());
         }
         proxySQLExecutor = new ProxySQLExecutor(driverType, backendConnection, 
this);
     }
diff --git 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationExecutor.java
 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationExecutor.java
index 9456e769ec6..45e68256bcc 100644
--- 
a/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationExecutor.java
+++ 
b/proxy/backend/core/src/main/java/org/apache/shardingsphere/proxy/backend/handler/distsql/ral/queryable/ConvertYamlConfigurationExecutor.java
@@ -433,7 +433,7 @@ public final class ConvertYamlConfigurationExecutor 
implements QueryableRALExecu
         Iterator<EncryptTableRuleConfiguration> iterator = 
ruleConfig.getTables().iterator();
         while (iterator.hasNext()) {
             EncryptTableRuleConfiguration tableRuleConfig = iterator.next();
-            boolean queryWithCipher = null != 
tableRuleConfig.getQueryWithCipherColumn() ? 
tableRuleConfig.getQueryWithCipherColumn() : true;
+            boolean queryWithCipher = null == 
tableRuleConfig.getQueryWithCipherColumn() || 
tableRuleConfig.getQueryWithCipherColumn();
             result.append(String.format(DistSQLScriptConstants.ENCRYPT, 
tableRuleConfig.getName(),
                     getEncryptColumns(tableRuleConfig.getColumns(), 
ruleConfig.getEncryptors(), ruleConfig.getLikeEncryptors()), queryWithCipher));
             if (iterator.hasNext()) {
diff --git 
a/proxy/frontend/core/src/main/java/org/apache/shardingsphere/proxy/frontend/netty/CDCChannelInboundHandler.java
 
b/proxy/frontend/core/src/main/java/org/apache/shardingsphere/proxy/frontend/netty/CDCChannelInboundHandler.java
index f48f2bfd42d..8e9abbbcfbb 100644
--- 
a/proxy/frontend/core/src/main/java/org/apache/shardingsphere/proxy/frontend/netty/CDCChannelInboundHandler.java
+++ 
b/proxy/frontend/core/src/main/java/org/apache/shardingsphere/proxy/frontend/netty/CDCChannelInboundHandler.java
@@ -133,6 +133,7 @@ public final class CDCChannelInboundHandler extends 
ChannelInboundHandlerAdapter
                 break;
             default:
                 log.warn("can't handle this type of request {}", request);
+                break;
         }
     }
     
diff --git a/src/resources/pmd.xml b/src/resources/pmd.xml
index 43b825120e7..613a28987c6 100644
--- a/src/resources/pmd.xml
+++ b/src/resources/pmd.xml
@@ -23,11 +23,14 @@
     <rule ref="rulesets/java/quickstart.xml">
         <exclude name="AbstractClassWithoutAnyMethod" />
         <exclude name="AvoidAccessibilityAlteration" />
+        <exclude name="AvoidBranchingStatementAsLastInLoop" />
         <exclude name="AvoidCatchingThrowable" />
+        <exclude name="AvoidUsingHardCodedIP" />
         <exclude name="AvoidUsingVolatile" />
         <exclude name="CloseResource" />
         <exclude name="FinalFieldCouldBeStatic" />
         <exclude name="GuardLogStatement" />
+        <exclude name="OverrideBothEqualsAndHashcode" />
         <exclude name="PreserveStackTrace" />
         <exclude name="SingularField" />
         <exclude name="UncommentedEmptyMethodBody" />
@@ -42,11 +45,6 @@
             <property name="maxLineLength" value="200" />
         </properties>
     </rule>
-    <rule ref="category/java/design.xml/TooManyMethods">
-        <properties>
-            <property name="maxmethods" value="30" />
-        </properties>
-    </rule>
     <rule ref="category/java/design.xml/UseUtilityClass">
         <properties>
             <property name="ignoredAnnotations" 
value="lombok.NoArgsConstructor | 
org.springframework.boot.autoconfigure.SpringBootApplication" />
@@ -57,7 +55,6 @@
             <property name="allowIf" value="true" />
             <property name="allowFor" value="true" />
             <property name="allowWhile" value="true" />
-            <property name="allowIncrementDecrement" value="true" />
         </properties>
     </rule>
 </ruleset>


Reply via email to