[HSQLDB - SELECT] Exceção IndexOutOfBoundsException

3 respostas
R

Boa tarde pessoal,

Estou utilizando a versão 1.7.2 do HSQLDB (não pode ser atualizada) e ao fazer uma consulta em determinada tabela:

SELECT * FROM minha_tabela

Estou recebendo a exceção:

S1000 General error java.lang.IndexOutOfBoundsException / Error Code: 40 / State: S1000

Já pesquisei pelo State S1000 e pode estar relacionado a varias coisas.
O error code 40 é “GENERAL ERROR”.

Por isso por esses códigos não consegui achar nenhuma solução para o problema.

Sei que essa tabela tem muitas linhas e minha duvida é:

O HSQLDB tem algum limite de linhas para consulta?

Utilizando SELECT TOP consegui chegar ao seguinte valor:

SELECT TOP 25616 * FROM minha_tabela

Valeu!

3 Respostas

drsmachado

Normalmente o IndexOutOfBoundsException é lançado quando você tenta acessar uma posição que não existe em um array e não por que esse array ultrapassou o limite máximo.
Javadoc do mesmo.

R

drsmachado:
Normalmente o IndexOutOfBoundsException é lançado quando você tenta acessar uma posição que não existe em um array e não por que esse array ultrapassou o limite máximo.
Javadoc do mesmo.

Certo,

Será então que o HSQLDB quando eu utilizo * na consulta está tentando acessar uma linha que não existe?

Se sim, obviamente é um erro que pode ter sido ocasionado por qual motivo?

Obrigado!

R

Estranho que quando utilizo o SELECT TOP, como informei funciona:

SELECT TOP 10 codigo FROM minha_tabela

Agora se pego um desses 10 códigos e faço o seguinte:

SELECT * FROM minha_tabela WHERE codigo = 1

Tanto assim como especificando a coluna “codigo” gera a mesma exceção!

Criado 10 de julho de 2013
Ultima resposta 11 de jul. de 2013
Respostas 3
Participantes 2