Skip to content

Commit

Permalink
Merge pull request #4 from okocraft/Debug
Browse files Browse the repository at this point in the history
メモリリークに対処
  • Loading branch information
怠惰 authored Jun 1, 2019
2 parents 7ab8a74 + 4301c9b commit 75f4eb8
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 38 deletions.
11 changes: 0 additions & 11 deletions src/main/java/net/okocraft/box/Box.java
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,6 @@
import org.bukkit.Bukkit;
import org.bukkit.event.HandlerList;
import org.bukkit.plugin.java.JavaPlugin;
import org.bukkit.scheduler.BukkitRunnable;

/**
* @author OKOCRAFT
Expand Down Expand Up @@ -80,16 +79,6 @@ public void onEnable() {
new Commands(database);
new BoxTabCompleter(database);

new BukkitRunnable(){

@Override
public void run() {
Bukkit.broadcastMessage("§8[§6Box§8] §7データベースをリフレッシュしています...");
database.resetConnection();
Bukkit.broadcastMessage("§8[§6Box§8] §7データベースのリフレッシュが完了しました。");
}
}.runTaskTimer(this, 20*60*60*2, 20*60*60*2);

log.info("Box has been enabled!");
}

Expand Down
41 changes: 21 additions & 20 deletions src/main/java/net/okocraft/box/database/Database.java
Original file line number Diff line number Diff line change
Expand Up @@ -135,10 +135,11 @@ public boolean connect(String url) {
}

// create table for Box plugin
boolean isTableCreated = connection.map(connection -> {
try {
connection.createStatement().execute("CREATE TABLE IF NOT EXISTS " + table
+ " (uuid TEXT PRIMARY KEY NOT NULL, player TEXT NOT NULL)");
val statement = prepare(
"CREATE TABLE IF NOT EXISTS " + table + " (uuid TEXT PRIMARY KEY NOT NULL, player TEXT NOT NULL)");
boolean isTableCreated = statement.map(resource -> {
try (PreparedStatement stmt = resource) {
stmt.execute();

return true;
} catch (SQLException e) {
Expand Down Expand Up @@ -353,8 +354,8 @@ public String get(String column, String entry) {

val statement = prepare("SELECT " + column + " FROM " + table + " WHERE " + entryType + " = ?");

Optional<String> result = statement.map(stmt -> {
try {
Optional<String> result = statement.map(resource -> {
try (PreparedStatement stmt = resource) {
stmt.setString(1, entry);
ResultSet rs = stmt.executeQuery();
return rs.getString(column);
Expand Down Expand Up @@ -439,7 +440,7 @@ public boolean dropColumn(String column) {
});
String columnsExcludeType = colmunsBuilderExcludeType.toString().replaceAll(", $", "");

Statement statement;
Statement statement = null;

try {
statement = connection.get().createStatement();
Expand All @@ -462,8 +463,7 @@ public boolean dropColumn(String column) {
}

/**
* エントリーの複数のカラムの値を一気に取得する。
* マップはLinkedHashMapで、引数のListの順番を引き継ぐ。
* エントリーの複数のカラムの値を一気に取得する。 マップはLinkedHashMapで、引数のListの順番を引き継ぐ。
*
* @author LazyGon
* @since 1.0.0-SNAPSHOT
Expand All @@ -483,8 +483,8 @@ public Map<String, String> getMultiValue(List<String> columns, @NonNull String e

val statement = prepare("SELECT " + multipleColumnName + " FROM " + table + " WHERE " + entryType + " = ?");

return statement.map(stmt -> {
try {
return statement.map(resource -> {
try (PreparedStatement stmt = resource) {
stmt.setString(1, entry);
ResultSet rs = stmt.executeQuery();

Expand Down Expand Up @@ -521,10 +521,11 @@ public boolean setMultiValue(Map<String, String> columnValueMap, @NonNull String
sb.append(columnName + " = '" + columnValue + "', ");
});

val statement = prepare("UPDATE " + table + " SET " + sb.substring(0, sb.length() - 2) + " WHERE " + entryType + " = ?");
val statement = prepare(
"UPDATE " + table + " SET " + sb.substring(0, sb.length() - 2) + " WHERE " + entryType + " = ?");

return statement.map(stmt -> {
try {
return statement.map(resource -> {
try (PreparedStatement stmt = resource) {
stmt.setString(1, entry);
stmt.executeUpdate();
return true;
Expand All @@ -550,8 +551,8 @@ public Map<String, String> getColumnMap() {

val statement = prepare("SELECT * FROM " + table + " WHERE 0=1");

return statement.map(stmt -> {
try {
return statement.map(resource -> {
try (PreparedStatement stmt = resource) {
ResultSetMetaData rsmd = stmt.executeQuery().getMetaData();

for (int i = 1; i <= rsmd.getColumnCount(); i++) {
Expand Down Expand Up @@ -580,8 +581,8 @@ public Map<String, String> getPlayersMap() {

val statement = prepare("SELECT uuid, player FROM " + table);

statement.ifPresent(stmt -> {
try {
statement.ifPresent(resource -> {
try (PreparedStatement stmt = resource) {
ResultSet rs = stmt.executeQuery();
while (rs.next())
playersMap.put(rs.getString("uuid"), rs.getString("player"));
Expand Down Expand Up @@ -623,8 +624,8 @@ public boolean removeValue(String column, String entry) {

val statement = prepare("UPDATE " + table + " SET " + column + " = NULL WHERE " + entryType + " = ?");

return statement.map(stmt -> {
try {
return statement.map(resource -> {
try (PreparedStatement stmt = resource) {
stmt.setString(1, entry);
stmt.executeUpdate();
return true;
Expand Down
8 changes: 1 addition & 7 deletions src/main/java/net/okocraft/box/database/StatementRunner.java
Original file line number Diff line number Diff line change
Expand Up @@ -16,16 +16,10 @@ public StatementRunner(Statement statement) {

@Override
public void run() {
try {
try (Statement stmt = statement) {
statement.executeBatch();
} catch (SQLException exception) {
exception.printStackTrace();
} finally {
try {
statement.close();
} catch (SQLException exception) {
exception.printStackTrace();
}
}
}

Expand Down

0 comments on commit 75f4eb8

Please sign in to comment.