Agora ocorre também outro erro, out of memory. Esse erro é literalmente out of memory? o.O tem 4gb e apenas eu no servidor e apenas 5 objetos sendo salvos.
Erros
[15:16:17 WARN]: java.sql.SQLException: statement is not executing
[15:16:17 WARN]: at org.sqlite.Stmt.checkOpen(Stmt.java:49)
[15:16:17 WARN]: at org.sqlite.PrepStmt.execute(PrepStmt.java:62)
[15:16:17 WARN]: at me.zath.skyclans.utils.Sql.updateClan(Sql.java:275)
[15:16:17 WARN]: at me.zath.skyclans.utils.Sql.updateClan(Sql.java:282)
[15:16:17 WARN]: at java.util.HashMap$Values.forEach(Unknown Source)
[15:16:17 WARN]: at me.zath.skyclans.controllers.ClanController$1.run(ClanController.java:166)
[15:16:17 WARN]: at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:59)
[15:16:17 WARN]: at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[15:16:17 WARN]: at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[15:16:17 WARN]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[15:16:17 WARN]: at java.lang.Thread.run(Unknown Source)
[15:16:17 WARN]: java.sql.SQLException: [SQLITE_MISUSE] Library used incorrectly (out of memory)
[15:16:17 WARN]: at org.sqlite.DB.newSQLException(DB.java:383)
[15:16:17 WARN]: at org.sqlite.DB.newSQLException(DB.java:387)
[15:16:17 WARN]: at org.sqlite.DB.throwex(DB.java:374)
[15:16:17 WARN]: at org.sqlite.NativeDB.prepare(Native Method)
[15:16:17 WARN]: at org.sqlite.DB.prepare(DB.java:123)
[15:16:17 WARN]: at org.sqlite.PrepStmt.<init>(PrepStmt.java:42)
[15:16:17 WARN]: at org.sqlite.Conn.prepareStatement(Conn.java:404)
[15:16:17 WARN]: at org.sqlite.Conn.prepareStatement(Conn.java:399)
[15:16:17 WARN]: at org.sqlite.Conn.prepareStatement(Conn.java:383)
[15:16:17 WARN]: at me.zath.skyclans.utils.Sql.updateClan(Sql.java:254)
[15:16:17 WARN]: at me.zath.skyclans.utils.Sql.updateClan(Sql.java:282)
[15:16:17 WARN]: at me.zath.skyclans.utils.Sql.updateClan(Sql.java:282)
[15:16:17 WARN]: at java.util.HashMap$Values.forEach(Unknown Source)
[15:16:17 WARN]: at me.zath.skyclans.controllers.ClanController$1.run(ClanController.java:166)
[15:16:17 WARN]: at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftTask.run(CraftTask.java:59)
[15:16:17 WARN]: at org.bukkit.craftbukkit.v1_8_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
[15:16:17 WARN]: at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
[15:16:17 WARN]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
[15:16:17 WARN]: at java.lang.Thread.run(Unknown Source)
linha 254 : PreparedStatement statement = getConnection().prepareStatement ...
linha 275 : statement.execute();
Esse erro não ocorre apenas nesse método, é quase em todos ( CREATE TABLE, INSERT, SELECT, UPDATE, etc ) porém é só por vezes, tem vezes que da erro e outras vezes não tem erro.
Alguém já teve esse problema, ou sabe o porquê disso estar aconteçendo?
Pergunta
zAth
Então, por vezes ocorre esse erro.
Código
private static Connection connection; public static File db; public static void closeConnection() { try { if(connection != null && connection.isClosed()) return; connection.close(); } catch (Exception e) { e.printStackTrace(); } } private static void openConnection() { try { if(connection != null && !connection.isClosed()) return; Class.forName("org.sqlite.JDBC"); connection = DriverManager.getConnection("jdbc:sqlite:" + db.getAbsolutePath()); } catch (ClassNotFoundException | SQLException ex8) { ex8.printStackTrace(); } } public static void updateClan(Clan clan) { openConnection(); try { PreparedStatement statement = connection.prepareStatement("UPDATE clans SET clanColoredTag=?, sizeLimit=?, homeLocation=?" + ", pvp=?, prize=?, gladWins=?, gladLosts=?, kills=?, deaths=? WHERE clanTag=?"); statement.setString(1, clan.getColoredTag()); statement.setInt(2, clan.getSize()); statement.setString(3, Utils.serializeLocation(clan.getHome())); statement.setBoolean(4, clan.getPvp()); statement.setInt(5, clan.getPrize()); statement.setInt(6, clan.getGladWins()); statement.setInt(7, clan.getGladLosts()); statement.setInt(8, clan.getKills()); statement.setInt(9, clan.getDeaths()); statement.setString(10, clan.getTag()); statement.executeUpdate(); statement.close(); } catch (Exception e) { //e.printStackTrace(); Bukkit.getServer().getConsoleSender().sendMessage(Bukkit.getDescription().getName() + "§4Erro atualizando o clan"); Bukkit.getServer().getConsoleSender().sendMessage(Bukkit.getDescription().getName() + clan.toString()); Bukkit.getServer().getConsoleSender().sendMessage(Bukkit.getDescription().getName() + "§4Atualizando novamente..."); updateClan(clan); } finally { closeConnection(); } }Agora ocorre também outro erro, out of memory. Esse erro é literalmente out of memory? o.O tem 4gb e apenas eu no servidor e apenas 5 objetos sendo salvos.
Erros
Esse erro não ocorre apenas nesse método, é quase em todos ( CREATE TABLE, INSERT, SELECT, UPDATE, etc ) porém é só por vezes, tem vezes que da erro e outras vezes não tem erro.
Alguém já teve esse problema, ou sabe o porquê disso estar aconteçendo?
Agradeço desde já
Editado por zAthLink para o comentário
Compartilhar em outros sites
11 respostass a esta questão
Posts Recomendados