You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@shardingsphere.apache.org by pa...@apache.org on 2023/04/19 14:20:03 UTC

[shardingsphere] branch master updated: Fix ReturnEmptyCollectionRatherThanNull rule for pmd (#25241)

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

panjuan 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 46e33179f65 Fix ReturnEmptyCollectionRatherThanNull rule for pmd (#25241)
46e33179f65 is described below

commit 46e33179f65eb84b057020b3862cb031b28e46ca
Author: Liang Zhang <zh...@apache.org>
AuthorDate: Wed Apr 19 22:19:55 2023 +0800

    Fix ReturnEmptyCollectionRatherThanNull rule for pmd (#25241)
---
 .../encrypt/sm/algorithm/SM4EncryptAlgorithm.java          | 14 ++++++--------
 .../translatable/TranslatableProjectFilterRule.java        |  4 ++--
 .../xa/bitronix/manager/SingleXAResourceHolder.java        |  3 ++-
 .../xa/bitronix/manager/SingleXAResourceHolderTest.java    |  3 ++-
 4 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/features/encrypt/plugin/sm/src/main/java/org/apache/shardingsphere/encrypt/sm/algorithm/SM4EncryptAlgorithm.java b/features/encrypt/plugin/sm/src/main/java/org/apache/shardingsphere/encrypt/sm/algorithm/SM4EncryptAlgorithm.java
index 3c379014f32..748435b9688 100644
--- a/features/encrypt/plugin/sm/src/main/java/org/apache/shardingsphere/encrypt/sm/algorithm/SM4EncryptAlgorithm.java
+++ b/features/encrypt/plugin/sm/src/main/java/org/apache/shardingsphere/encrypt/sm/algorithm/SM4EncryptAlgorithm.java
@@ -18,9 +18,9 @@
 package org.apache.shardingsphere.encrypt.sm.algorithm;
 
 import lombok.SneakyThrows;
-import org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm;
-import org.apache.shardingsphere.encrypt.exception.algorithm.EncryptAlgorithmInitializationException;
 import org.apache.shardingsphere.encrypt.api.context.EncryptContext;
+import org.apache.shardingsphere.encrypt.exception.algorithm.EncryptAlgorithmInitializationException;
+import org.apache.shardingsphere.encrypt.spi.EncryptAlgorithm;
 import org.apache.shardingsphere.infra.util.exception.ShardingSpherePreconditions;
 import org.bouncycastle.jce.provider.BouncyCastleProvider;
 import org.bouncycastle.pqc.math.linearalgebra.ByteUtils;
@@ -33,7 +33,6 @@ import java.security.GeneralSecurityException;
 import java.security.Security;
 import java.util.Arrays;
 import java.util.HashSet;
-import java.util.Optional;
 import java.util.Properties;
 import java.util.Set;
 
@@ -94,7 +93,7 @@ public final class SM4EncryptAlgorithm implements EncryptAlgorithm<Object, Strin
     
     private byte[] createSm4Iv(final Properties props, final String sm4Mode) {
         if (!"CBC".equalsIgnoreCase(sm4Mode)) {
-            return null;
+            return new byte[0];
         }
         ShardingSpherePreconditions.checkState(props.containsKey(SM4_IV), () -> new EncryptAlgorithmInitializationException("SM4", String.format("%s can not be null", SM4_IV)));
         String sm4IvValue = String.valueOf(props.getProperty(SM4_IV));
@@ -132,11 +131,10 @@ public final class SM4EncryptAlgorithm implements EncryptAlgorithm<Object, Strin
     private byte[] handle(final byte[] input, final int mode) {
         Cipher cipher = Cipher.getInstance(sm4ModePadding, BouncyCastleProvider.PROVIDER_NAME);
         SecretKeySpec secretKeySpec = new SecretKeySpec(sm4Key, "SM4");
-        Optional<byte[]> sm4Iv = Optional.ofNullable(this.sm4Iv);
-        if (sm4Iv.isPresent()) {
-            cipher.init(mode, secretKeySpec, new IvParameterSpec(sm4Iv.get()));
-        } else {
+        if (0 == sm4Iv.length) {
             cipher.init(mode, secretKeySpec);
+        } else {
+            cipher.init(mode, secretKeySpec, new IvParameterSpec(sm4Iv));
         }
         return cipher.doFinal(input);
     }
diff --git a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectFilterRule.java b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectFilterRule.java
index acd31c897cf..fc91294fcc0 100644
--- a/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectFilterRule.java
+++ b/kernel/sql-federation/optimizer/src/main/java/org/apache/shardingsphere/sqlfederation/optimizer/metadata/translatable/TranslatableProjectFilterRule.java
@@ -54,7 +54,7 @@ public class TranslatableProjectFilterRule extends RelOptRule {
         LogicalFilter filter = call.rel(1);
         TranslatableTableScan scan = call.rel(2);
         int[] fields = getProjectFields(project.getProjects());
-        if (null == fields) {
+        if (0 == fields.length) {
             return;
         }
         call.transformTo(new TranslatableTableScan(scan.getCluster(), scan.getTable(), scan.getTranslatableTable(), Collections.singletonList(filter.getCondition()), fields));
@@ -67,7 +67,7 @@ public class TranslatableProjectFilterRule extends RelOptRule {
             if (exp instanceof RexInputRef) {
                 result[index] = ((RexInputRef) exp).getIndex();
             } else {
-                return null;
+                return new int[0];
             }
         }
         return result;
diff --git a/kernel/transaction/type/xa/provider/bitronix/src/main/java/org/apache/shardingsphere/transaction/xa/bitronix/manager/SingleXAResourceHolder.java b/kernel/transaction/type/xa/provider/bitronix/src/main/java/org/apache/shardingsphere/transaction/xa/bitronix/manager/SingleXAResourceHolder.java
index 0ec79499021..ca5121587f0 100644
--- a/kernel/transaction/type/xa/provider/bitronix/src/main/java/org/apache/shardingsphere/transaction/xa/bitronix/manager/SingleXAResourceHolder.java
+++ b/kernel/transaction/type/xa/provider/bitronix/src/main/java/org/apache/shardingsphere/transaction/xa/bitronix/manager/SingleXAResourceHolder.java
@@ -23,6 +23,7 @@ import bitronix.tm.resource.common.XAResourceHolder;
 import lombok.RequiredArgsConstructor;
 
 import javax.transaction.xa.XAResource;
+import java.util.Collections;
 import java.util.Date;
 import java.util.List;
 
@@ -48,7 +49,7 @@ public final class SingleXAResourceHolder extends AbstractXAResourceHolder {
     
     @Override
     public List<XAResourceHolder> getXAResourceHolders() {
-        return null;
+        return Collections.emptyList();
     }
     
     @Override
diff --git a/kernel/transaction/type/xa/provider/bitronix/src/test/java/org/apache/shardingsphere/transaction/xa/bitronix/manager/SingleXAResourceHolderTest.java b/kernel/transaction/type/xa/provider/bitronix/src/test/java/org/apache/shardingsphere/transaction/xa/bitronix/manager/SingleXAResourceHolderTest.java
index b29c7da9b9a..27f045acff0 100644
--- a/kernel/transaction/type/xa/provider/bitronix/src/test/java/org/apache/shardingsphere/transaction/xa/bitronix/manager/SingleXAResourceHolderTest.java
+++ b/kernel/transaction/type/xa/provider/bitronix/src/test/java/org/apache/shardingsphere/transaction/xa/bitronix/manager/SingleXAResourceHolderTest.java
@@ -29,6 +29,7 @@ import javax.transaction.xa.XAResource;
 import static org.hamcrest.MatcherAssert.assertThat;
 import static org.hamcrest.Matchers.is;
 import static org.junit.jupiter.api.Assertions.assertNull;
+import static org.junit.jupiter.api.Assertions.assertTrue;
 
 @ExtendWith(MockitoExtension.class)
 class SingleXAResourceHolderTest {
@@ -58,7 +59,7 @@ class SingleXAResourceHolderTest {
     
     @Test
     void assertGetXAResourceHolders() {
-        assertNull(singleXAResourceHolder.getXAResourceHolders());
+        assertTrue(singleXAResourceHolder.getXAResourceHolders().isEmpty());
     }
     
     @Test