Java UR-аномалия и DR-аномалия из pmd:DataflowAnomalyAnalysis sslContext

Мне нужна помощь в понимании того, почему я получаю как UR-аномалию, так и DR-аномалию из pmd: DataflowAnomalyAnalysis, когда запускаю SonarQube в коде, пытающемся создать Netty SslContext.

Код работает отлично, но я получаю как UR, так и DR для переменных keystorePath и truststorePath.

Некоторые указатели, пожалуйста? Спасибо

@Value("${server.ssl.key-store}") private String keyStorePath;
    @Value("${server.ssl.key-store-password}") private String keyStorePassPhrase;
    @Value("${server.ssl.key-password}") private String keyPassPhrase;
    @Value("${server.ssl.key-store-type}") private String keyStoreType;
    @Value("${server.ssl.trust-store}") private String trustStorePath;
    @Value("${server.ssl.trust-store-password}") private String trustStorePassPhrase;
    @Value("${server.ssl.trust-store-type}") private String trustStoreType;

    public SslContext getSslContext() {
        try {
            final Path     keystorePath = Paths.get(keyStorePath);
            final KeyStore keyStore     = KeyStore.getInstance(keyStoreType);
            try (InputStream keyStoreFile = Files.newInputStream(keystorePath)) {
                keyStore.load(keyStoreFile, keyStorePassPhrase.toCharArray());
            }
            final KeyManagerFactory keyManagerFactory = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());
            keyManagerFactory.init(keyStore, keyPassPhrase.toCharArray());

            final Path     truststorePath = Paths.get(trustStorePath);
            final KeyStore trustStore     = KeyStore.getInstance(trustStoreType);
            try (InputStream trustStoreFile = Files.newInputStream(truststorePath)) {
                trustStore.load(trustStoreFile, trustStorePassPhrase.toCharArray());
            }
            final TrustManagerFactory trustManagerFactory = TrustManagerFactory.getInstance(TrustManagerFactory.getDefaultAlgorithm());
            trustManagerFactory.init(trustStore);

            return SslContextBuilder.forClient().keyManager(keyManagerFactory).trustManager(trustManagerFactory).build();
        } catch (KeyStoreException | IOException | UnrecoverableKeyException | NoSuchAlgorithmException | CertificateException e) {
            e.printStackTrace();
            return null;
        }
    }

person PatPatPat    schedule 31.08.2020    source источник
comment
Это правило было объявлено устаревшим PMD.   -  person fernal73    schedule 01.09.2020
comment
Спасибо за ваш комментарий @fernal73. Тем не менее, можно ли помочь решить эту проблему? И можно ли узнать, почему SonarQube до сих пор использует эту вилку?   -  person PatPatPat    schedule 01.09.2020
comment
Понятия не имею о Sonar Cube. Я никогда не подвергался этому. Что касается ответа на ваш вопрос, в StackOverflow были аналогичные запросы. Возможно, вы найдете там свой ответ.   -  person fernal73    schedule 01.09.2020
comment
stackoverflow.com/questions/ 16718514/   -  person fernal73    schedule 01.09.2020
comment
stackoverflow.com/a/40104867/3924108   -  person fernal73    schedule 01.09.2020
comment
pmd.github.io/latest/   -  person fernal73    schedule 01.09.2020


Ответы (1)


Судя по комментариям, это правило действительно устарело в последней версии PMD 7+.

person PatPatPat    schedule 17.06.2021