Problém je ve způsobu načítání dat v getStuff()
. Při každé návštěvě getStuff()
získáte novou sadu ResultSet
ale nezavřeš to.
To porušuje očekávání Statement
třídy (viz zde - http://docs. oracle.com/javase/7/docs/api/java/sql/Statement.html
):
Ve výchozím nastavení může být současně otevřen pouze jeden objekt ResultSet na objekt Statement. Pokud je tedy čtení jednoho objektu ResultSet proloženo čtením jiného objektu, každý musí být generován jinými objekty Statement. Všechny metody provádění v rozhraní příkazu implicitně zavírají aktuální objekt ResultSet příkazu, pokud existuje otevřený.
Co dělá věci ještě horší, je rs
z volacího kódu. Je také odvozen z statement
pole, ale není uzavřeno.
Sečteno a podtrženo:máte několik ResultSet
týkající se stejného Statement
objekt současně otevřen.