Large file upload interrupt error does not keep InterruptedException as cause

Aberta Para iniciantes
#236 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 3 dias

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
1/5
Tempo estimado
Menos de uma hora
Facilidade para iniciantes
88/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
java
Domínio
backend

Direção de pesquisa

Os dois throws a alterar são throw new B2LocalException("trouble", "interrupted exception"); em core/src/main/java/com/backblaze/b2/client/B2LargeFileStorer.java, nas linhas 286 e 338, em storeFile() e storeParts(). Copie a sobrecarga com causa que o ramo ExecutionException, algumas linhas acima, já usa, passando a InterruptedException capturada. Está concluído quando os dois throws mantêm a InterruptedException como causa e os testes existentes no módulo core continuam passando.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

What happens

When storeFile() or storeParts() is interrupted, the B2LocalException that is thrown does not carry the InterruptedException as its cause, so the stack trace of the interrupt is lost. The other B2LocalException throws in the same methods do pass the cause.

Where

core/src/main/java/com/backblaze/b2/client/B2LargeFileStorer.java:286 and :338: throw new B2LocalException("trouble", "interrupted exception"); (the ExecutionException branch at :283 and :334 passes cause).

Why it matters

Impact: Docs and messages (less diagnostic detail), loud. Severity: Low, because it only loses diagnostic detail, the error itself is still thrown, and it needs an interrupt (unusual).

How to check

Found by reading the code, not reproduced. Read the two throw statements and compare with the constructor overload used a few lines above, which takes a cause.

Version

Seen at v6.5.0. Present on the default branch: present.

Linguagem predominante
Java
Estrelas
103
Forks
23
Merge médio
5d 8h
PRs com merge (30d)
3

Preparar o ambiente

Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de Backblaze/b2-sdk-java

Todas as issues de Backblaze/b2-sdk-java

Issues semelhantes

Mais issues de Java

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.