Problemet är hur du hämtar data i getStuff()
. Varje gång du besöker getStuff()
du får ett nytt ResultSet
men du stänger den inte.
Detta bryter mot förväntningarna på Statement
klass (se här - http://docs. oracle.com/javase/7/docs/api/java/sql/Statement.html
):
Som standard kan endast ett ResultSet-objekt per Statement-objekt vara öppet samtidigt. Därför, om läsningen av ett ResultSet-objekt interfolieras med läsningen av ett annat, måste var och en ha genererats av olika Statement-objekt. Alla exekveringsmetoder i Statement-gränssnittet stänger implicit ett utdrags aktuella ResultSet-objekt om det finns ett öppet sådant.
Det som gör saken ännu värre är rs
från samtalskoden. Det härleds också från statement
fältet men det är inte stängt.
Summa summarum:du har flera ResultSet
som hänför sig till samma Statement
objektet öppnas samtidigt.