Re:NegativeArraySizeException ao inserir em campo bytea no PostGres
4 respostas
fiaux
Quando chega na lnha pstmt.setBinaryStream(1, relatorio.getImgRelatorio(), tamanho); como estão as variáveis? Qual o valor de tamanho, e o que é retornado em relatorio.getImgRelatorio?
public class NegativeArraySizeException
extends RuntimeException
Thrown if an application tries to create an array with negative size.
Acho que tem algum valor estranho entre esses dois que você passa como parâmetro.
Seguinte, possuo uma tabela que possui um campo do tipo bytea. Esse campo recebe valores grandes, como CLOB ou BLOB.
Estou passando para o meu PreparedStatement, através do método ‘setBinaryStream’, um inputStream no segundo argumento e no terceiro, o tamanho do inputStream.
Nesse momento, recebo a exceção NegativeArraySizeException.
Alguém sabe o que seria isso? Aparentemente não há nada de errado!
Problema solucionado!
Não tem mais de 2GB.
Precisava dar um reset no inputStream, já que o percorro antes.
Mas estou com outro problema. Estou fazendo exatamente a mesma coisa, mas nada é inserido no banco!!
Não recebo exceção, simplesmente a aplicação é executada e nada vai ao banco. Nao é problema de conexão pois nessa mesma transação faço um UPDATE em outra tabela e ai os valores são atualizados.
Lembro que o campo no banco é bytea e o tipo de dado que estou tentando inserir é byteArrayInputStream.
Obrigado, guilherme
G
Guilherme_82
Novo problema também solucionado!
Estava tentando inserir um inputStream vazio no banco!