redhat-developer / redhat-developer/vscode-java

Unexpected dead code warning.

Abierto
#4,152 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
TypeScript
Estrellas
2.3k
Forks
546
Merge medio
20 h 1 min
PR fusionados (30 d)
11

Descripción

SessionCallback<List<Object>> obj;

    public void method() throws TransactionException {
        StringRedisTemplate stringRedisTemplate = resourcePool.template();
        var res = obj.execute(stringRedisTemplate);// @Nullable <K, V> T execute(RedisOperations<K, V> operations) throws DataAccessException;
        if (res == null) {
            System.out.println("Direct execution is not Dead Code");
        }
        List<Object> results = stringRedisTemplate.execute(new SessionCallback<List<Object>>() {
            @Override
            @Nullable
            public <K, V> List<Object> execute(@NonNull RedisOperations<K, V> operations) throws DataAccessException {
                operations.multi();
                return null;
            }
        });
        // @Override public <T> T StringRedisTemplate::execute(SessionCallback<T> session) {
        // 	...
        // 	try {
        // 		return session.execute(this); -> this is NullAble
        // 	} finally {
        // 		RedisConnectionUtils.unbindConnection(factory);
        // 	}
        // }
        if (results == null) {
            throw new TransactionException("Transaction failed, please retry") {
            };
        }
    }
Image

Minimal reproduce repo

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con el repositorio mínimo de reproducción enlazado en el issue y ejecuta el fragmento de Java que activa la advertencia de código muerto. Compara la advertencia con las rutas de ejecución nullable mostradas y el diagnóstico adjunto; se considera terminado cuando el comportamiento de la advertencia se ha corregido correctamente o se ha reproducido claramente para los maintainers del proyecto.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
java, typescript
Área
devtools
Tipo de issue
Error
Dificultad
4/5
Tiempo estimado
3-5 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.