APF 2.0.3

Fixes #234 #233 #237
Fixes Files.lines streams not being closed
This commit is contained in:
Rsl1122 2017-08-12 12:24:04 +03:00
parent 298286180c
commit 9e78f62267
8 changed files with 53 additions and 45 deletions

View File

@ -28,7 +28,7 @@
<dependency> <dependency>
<groupId>com.djrapitops</groupId> <groupId>com.djrapitops</groupId>
<artifactId>abstract-plugin-framework</artifactId> <artifactId>abstract-plugin-framework</artifactId>
<version>2.0.2</version> <version>2.0.3</version>
<scope>compile</scope> <scope>compile</scope>
</dependency> </dependency>
<!-- SoftDepended Plugins--> <!-- SoftDepended Plugins-->

View File

@ -285,7 +285,7 @@ public class Locale implements Closeable {
} }
private void loadFromFile(File localeFile) throws IOException { private void loadFromFile(File localeFile) throws IOException {
loadFromContents(Files.lines(localeFile.toPath(), StandardCharsets.UTF_8).collect(Collectors.toList()), "Custom File"); loadFromContents(FileUtil.lines(localeFile), "Custom File");
} }
private void loadFromResource(String fileName) { private void loadFromResource(String fileName) {

View File

@ -96,7 +96,7 @@ public enum Html {
String[] split = localeRow.split(" <> "); String[] split = localeRow.split(" <> ");
Html.valueOf(split[0]).setHtml(split[1]); Html.valueOf(split[0]).setHtml(split[1]);
} catch (IllegalArgumentException e) { } catch (IllegalArgumentException e) {
Log.error("There is a miswritten line in locale on line " + localeRows.indexOf(localeRow)); Log.error("There is a miswritten lines in locale on lines " + localeRows.indexOf(localeRow));
} }
} }
} catch (IOException e) { } catch (IOException e) {

View File

@ -1,5 +1,6 @@
package main.java.com.djrapitops.plan.utilities.file; package main.java.com.djrapitops.plan.utilities.file;
import com.djrapitops.plugin.utilities.Verify;
import main.java.com.djrapitops.plan.Plan; import main.java.com.djrapitops.plan.Plan;
import main.java.com.djrapitops.plan.utilities.MiscUtils; import main.java.com.djrapitops.plan.utilities.MiscUtils;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
@ -8,9 +9,14 @@ import java.io.File;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
import java.nio.charset.Charset;
import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Scanner; import java.util.Scanner;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class FileUtil { public class FileUtil {
@ -55,4 +61,18 @@ public class FileUtil {
return lines; return lines;
} }
public static List<String> lines(File file) throws IOException {
return lines(file, StandardCharsets.UTF_8);
}
public static List<String> lines(File file, Charset charset) throws IOException {
List<String> lines = new ArrayList<>();
if (Verify.exists(file)) {
try (Stream<String> linesStream = Files.lines(file.toPath(), charset)) {
lines = linesStream.collect(Collectors.toList());
}
}
return lines;
}
} }

View File

@ -1,19 +1,19 @@
package main.java.com.djrapitops.plan.utilities.file.dump; package main.java.com.djrapitops.plan.utilities.file.dump;
import com.djrapitops.plugin.utilities.Verify;
import main.java.com.djrapitops.plan.Log; import main.java.com.djrapitops.plan.Log;
import main.java.com.djrapitops.plan.Plan; import main.java.com.djrapitops.plan.Plan;
import main.java.com.djrapitops.plan.Settings; import main.java.com.djrapitops.plan.Settings;
import main.java.com.djrapitops.plan.utilities.file.FileUtil;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.plugin.Plugin; import org.bukkit.plugin.Plugin;
import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.lang.management.ManagementFactory; import java.lang.management.ManagementFactory;
import java.lang.management.RuntimeMXBean; import java.lang.management.RuntimeMXBean;
import java.nio.charset.Charset; import java.nio.charset.Charset;
import java.nio.charset.MalformedInputException; import java.nio.charset.MalformedInputException;
import java.nio.file.FileSystems;
import java.nio.file.Files;
import java.nio.file.Path;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date; import java.util.Date;
@ -247,9 +247,9 @@ public class DumpUtils {
* @throws IOException when an error while reading occurred * @throws IOException when an error while reading occurred
*/ */
private static void addErrorLog(DumpLog log, Plan plan) throws IOException { private static void addErrorLog(DumpLog log, Plan plan) throws IOException {
Path errorFile = FileSystems.getDefault().getPath(plan.getDataFolder().getAbsolutePath(), Log.getErrorsFilename()); File errorFile = new File(plan.getDataFolder(), plan.getPluginLogger().getErrorsFilename());
if (Files.notExists(errorFile)) { if (!Verify.exists(errorFile)) {
return; return;
} }
@ -267,12 +267,11 @@ public class DumpUtils {
* @throws IOException when an error while reading occurred * @throws IOException when an error while reading occurred
*/ */
private static void addDebugLog(DumpLog log, Plan plan) throws IOException { private static void addDebugLog(DumpLog log, Plan plan) throws IOException {
Path debugFile = FileSystems.getDefault().getPath(plan.getDataFolder().getAbsolutePath(), "DebugLog.txt"); File debugFile = new File(plan.getDataFolder(), plan.getPluginLogger().getDebugFilename());
if (Files.notExists(debugFile)) { if (!Verify.exists(debugFile)) {
return; return;
} }
List<String> lines = readLines(debugFile); List<String> lines = readLines(debugFile);
log.addHeader("Debug Log"); log.addHeader("Debug Log");
@ -286,7 +285,7 @@ public class DumpUtils {
* @return The lines * @return The lines
* @throws IOException when an error while reading occurred * @throws IOException when an error while reading occurred
*/ */
private static List<String> readLines(Path file) throws IOException { private static List<String> readLines(File file) throws IOException {
for (Charset charset : Charset.availableCharsets().values()) { for (Charset charset : Charset.availableCharsets().values()) {
try { try {
return readLines(file, charset); return readLines(file, charset);
@ -306,7 +305,7 @@ public class DumpUtils {
* @return The lines * @return The lines
* @throws IOException when an error while reading occurred * @throws IOException when an error while reading occurred
*/ */
private static List<String> readLines(Path file, Charset charset) throws IOException { private static List<String> readLines(File file, Charset charset) throws IOException {
return Files.lines(file, charset).collect(Collectors.toList()); return FileUtil.lines(file, charset);
} }
} }

View File

@ -12,6 +12,7 @@ import main.java.com.djrapitops.plan.data.cache.queue.DataCacheGetQueue;
import main.java.com.djrapitops.plan.database.Database; import main.java.com.djrapitops.plan.database.Database;
import main.java.com.djrapitops.plan.database.databases.SQLiteDB; import main.java.com.djrapitops.plan.database.databases.SQLiteDB;
import main.java.com.djrapitops.plan.utilities.MiscUtils; import main.java.com.djrapitops.plan.utilities.MiscUtils;
import main.java.com.djrapitops.plan.utilities.file.FileUtil;
import org.bukkit.Bukkit; import org.bukkit.Bukkit;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import org.junit.After; import org.junit.After;
@ -26,11 +27,9 @@ import test.java.utils.TestInit;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.List;
import java.util.UUID; import java.util.UUID;
import java.util.stream.Collectors;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
import static org.junit.Assert.fail; import static org.junit.Assert.fail;
@ -82,10 +81,7 @@ public class DataCacheGetQueueTest {
} }
}; };
File f = new File(plan.getDataFolder(), "Errors.txt"); File f = new File(plan.getDataFolder(), "Errors.txt");
rows = 0; rows = FileUtil.lines(f).size();
if (f.exists()) {
rows = Files.lines(f.toPath(), Charset.defaultCharset()).collect(Collectors.toList()).size();
}
} }
/** /**
@ -96,9 +92,12 @@ public class DataCacheGetQueueTest {
public void tearDown() throws IOException, SQLException { public void tearDown() throws IOException, SQLException {
db.close(); db.close();
File f = new File(plan.getDataFolder(), "Errors.txt"); File f = new File(plan.getDataFolder(), "Errors.txt");
int rowsAgain = 0; List<String> lines = FileUtil.lines(f);
if (f.exists()) { int rowsAgain = lines.size();
rowsAgain = Files.lines(f.toPath(), Charset.defaultCharset()).collect(Collectors.toList()).size(); if (rowsAgain > 0) {
for (String line : lines) {
System.out.println(line);
}
} }
assertTrue("Errors were caught.", rows == rowsAgain); assertTrue("Errors were caught.", rows == rowsAgain);
} }

View File

@ -8,6 +8,7 @@ import main.java.com.djrapitops.plan.database.Database;
import main.java.com.djrapitops.plan.database.databases.SQLiteDB; import main.java.com.djrapitops.plan.database.databases.SQLiteDB;
import main.java.com.djrapitops.plan.utilities.MiscUtils; import main.java.com.djrapitops.plan.utilities.MiscUtils;
import main.java.com.djrapitops.plan.utilities.PassEncryptUtil; import main.java.com.djrapitops.plan.utilities.PassEncryptUtil;
import main.java.com.djrapitops.plan.utilities.file.FileUtil;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
@ -21,8 +22,6 @@ import test.java.utils.TestInit;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.Collections; import java.util.Collections;
import java.util.HashMap; import java.util.HashMap;
@ -58,10 +57,7 @@ public class DatabaseCommitTest {
} }
}; };
File f = new File(plan.getDataFolder(), "Errors.txt"); File f = new File(plan.getDataFolder(), "Errors.txt");
rows = 0; rows = FileUtil.lines(f).size();
if (f.exists()) {
rows = Files.lines(f.toPath(), Charset.defaultCharset()).collect(Collectors.toList()).size();
}
} }
/** /**
@ -72,10 +68,9 @@ public class DatabaseCommitTest {
public void tearDown() throws IOException, SQLException { public void tearDown() throws IOException, SQLException {
db.close(); db.close();
File f = new File(plan.getDataFolder(), "Errors.txt"); File f = new File(plan.getDataFolder(), "Errors.txt");
int rowsAgain = 0; List<String> lines = FileUtil.lines(f);
if (f.exists()) { int rowsAgain = lines.size();
List<String> lines = Files.lines(f.toPath(), Charset.defaultCharset()).collect(Collectors.toList()); if (rowsAgain > 0) {
rowsAgain = lines.size();
for (String line : lines) { for (String line : lines) {
System.out.println(line); System.out.println(line);
} }

View File

@ -20,6 +20,7 @@ import main.java.com.djrapitops.plan.database.tables.TPSTable;
import main.java.com.djrapitops.plan.utilities.ManageUtils; import main.java.com.djrapitops.plan.utilities.ManageUtils;
import main.java.com.djrapitops.plan.utilities.MiscUtils; import main.java.com.djrapitops.plan.utilities.MiscUtils;
import main.java.com.djrapitops.plan.utilities.analysis.MathUtils; import main.java.com.djrapitops.plan.utilities.analysis.MathUtils;
import main.java.com.djrapitops.plan.utilities.file.FileUtil;
import org.bukkit.plugin.java.JavaPlugin; import org.bukkit.plugin.java.JavaPlugin;
import org.junit.After; import org.junit.After;
import org.junit.Before; import org.junit.Before;
@ -37,11 +38,8 @@ import java.lang.management.ManagementFactory;
import java.lang.management.OperatingSystemMXBean; import java.lang.management.OperatingSystemMXBean;
import java.net.InetAddress; import java.net.InetAddress;
import java.net.UnknownHostException; import java.net.UnknownHostException;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertTrue;
@ -84,10 +82,7 @@ public class DatabaseTest {
} }
}; };
File f = new File(plan.getDataFolder(), "Errors.txt"); File f = new File(plan.getDataFolder(), "Errors.txt");
rows = 0; rows = FileUtil.lines(f).size();
if (f.exists()) {
rows = Files.lines(f.toPath(), Charset.defaultCharset()).collect(Collectors.toList()).size();
}
} }
/** /**
@ -101,10 +96,10 @@ public class DatabaseTest {
backup.close(); backup.close();
} }
File f = new File(plan.getDataFolder(), "Errors.txt"); File f = new File(plan.getDataFolder(), "Errors.txt");
int rowsAgain = 0;
if (f.exists()) { List<String> lines = FileUtil.lines(f);
List<String> lines = Files.lines(f.toPath(), Charset.defaultCharset()).collect(Collectors.toList()); int rowsAgain = lines.size();
rowsAgain = lines.size(); if (rowsAgain > 0) {
for (String line : lines) { for (String line : lines) {
System.out.println(line); System.out.println(line);
} }