diff --git a/pom.xml b/pom.xml
index 9d02bafae..f0eacdba6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -43,7 +43,7 @@
UTF-8
UTF-8
- 1.10
+ 1.8
1.7.4
diff --git a/src/main/java/world/bentobox/bentobox/api/addons/AddonClassLoader.java b/src/main/java/world/bentobox/bentobox/api/addons/AddonClassLoader.java
index 5689df7a0..56f5bc886 100644
--- a/src/main/java/world/bentobox/bentobox/api/addons/AddonClassLoader.java
+++ b/src/main/java/world/bentobox/bentobox/api/addons/AddonClassLoader.java
@@ -1,6 +1,7 @@
package world.bentobox.bentobox.api.addons;
import java.io.File;
+import java.lang.reflect.InvocationTargetException;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLClassLoader;
@@ -35,7 +36,7 @@ public class AddonClassLoader extends URLClassLoader {
MalformedURLException,
InvalidDescriptionException,
InstantiationException,
- IllegalAccessException {
+ IllegalAccessException, IllegalArgumentException, InvocationTargetException, NoSuchMethodException, SecurityException {
super(new URL[]{path.toURI().toURL()}, parent);
loader = addonsManager;
@@ -58,7 +59,7 @@ public class AddonClassLoader extends URLClassLoader {
throw new InvalidAddonInheritException("Main class doesn't not extends super class 'Addon'");
}
- addon = addonClass.newInstance();
+ addon = addonClass.getDeclaredConstructor().newInstance();
addon.setDescription(asDescription(data));
// Set permissions
if (data.isConfigurationSection("permissions")) {
diff --git a/src/main/java/world/bentobox/bentobox/api/configuration/Config.java b/src/main/java/world/bentobox/bentobox/api/configuration/Config.java
index ab27a83b1..a3fa4b52d 100644
--- a/src/main/java/world/bentobox/bentobox/api/configuration/Config.java
+++ b/src/main/java/world/bentobox/bentobox/api/configuration/Config.java
@@ -41,7 +41,8 @@ public class Config {
try {
result = handler.loadObjects();
} catch (InstantiationException | IllegalAccessException | IllegalArgumentException
- | InvocationTargetException | ClassNotFoundException | IntrospectionException e) {
+ | InvocationTargetException | ClassNotFoundException | IntrospectionException
+ | NoSuchMethodException | SecurityException e) {
logger.severe(() -> "Could not load config! Error: " + e.getMessage());
}
return result;
@@ -56,7 +57,7 @@ public class Config {
try {
return handler.loadObject(uniqueId);
} catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException
- | ClassNotFoundException | IntrospectionException e) {
+ | ClassNotFoundException | IntrospectionException | NoSuchMethodException | SecurityException e) {
logger.severe(() -> "Could not load config object! " + e.getMessage());
}
diff --git a/src/main/java/world/bentobox/bentobox/database/AbstractDatabaseHandler.java b/src/main/java/world/bentobox/bentobox/database/AbstractDatabaseHandler.java
index cc07ad892..eeab806d5 100644
--- a/src/main/java/world/bentobox/bentobox/database/AbstractDatabaseHandler.java
+++ b/src/main/java/world/bentobox/bentobox/database/AbstractDatabaseHandler.java
@@ -48,16 +48,22 @@ public abstract class AbstractDatabaseHandler {
/**
* Loads all the records in this table and returns a list of them
* @return list of
+ * @throws SecurityException
+ * @throws NoSuchMethodException
+ * @throws IllegalArgumentException
*/
- public abstract List loadObjects() throws InstantiationException, IllegalAccessException, InvocationTargetException, ClassNotFoundException, IntrospectionException;
+ public abstract List loadObjects() throws InstantiationException, IllegalAccessException, InvocationTargetException, ClassNotFoundException, IntrospectionException, IllegalArgumentException, NoSuchMethodException, SecurityException;
/**
* Creates a filled with values from the corresponding
* database file
* @param uniqueId - unique ID
* @return
+ * @throws SecurityException
+ * @throws NoSuchMethodException
+ * @throws IllegalArgumentException
*/
- public abstract T loadObject(String uniqueId) throws InstantiationException, IllegalAccessException, InvocationTargetException, ClassNotFoundException, IntrospectionException;
+ public abstract T loadObject(String uniqueId) throws InstantiationException, IllegalAccessException, InvocationTargetException, ClassNotFoundException, IntrospectionException, IllegalArgumentException, NoSuchMethodException, SecurityException;
/**
* Save T into the corresponding database
diff --git a/src/main/java/world/bentobox/bentobox/database/Database.java b/src/main/java/world/bentobox/bentobox/database/Database.java
index 6bb652674..f10ab3a9d 100644
--- a/src/main/java/world/bentobox/bentobox/database/Database.java
+++ b/src/main/java/world/bentobox/bentobox/database/Database.java
@@ -49,7 +49,8 @@ public class Database {
try {
result = handler.loadObjects();
} catch (InstantiationException | IllegalAccessException | IllegalArgumentException
- | InvocationTargetException | ClassNotFoundException | IntrospectionException e) {
+ | InvocationTargetException | ClassNotFoundException | IntrospectionException
+ | NoSuchMethodException | SecurityException e) {
logger.severe(() -> "Could not load objects from database! Error: " + e.getMessage());
}
return result;
@@ -65,7 +66,7 @@ public class Database {
try {
result = handler.loadObject(uniqueId);
} catch (InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException
- | ClassNotFoundException | IntrospectionException e) {
+ | ClassNotFoundException | IntrospectionException | NoSuchMethodException | SecurityException e) {
logger.severe(() -> "Could not load object from database! " + e.getMessage());
}
return result;
diff --git a/src/main/java/world/bentobox/bentobox/database/flatfile/ConfigHandler.java b/src/main/java/world/bentobox/bentobox/database/flatfile/ConfigHandler.java
index 74cc7d5a1..7fe13201e 100644
--- a/src/main/java/world/bentobox/bentobox/database/flatfile/ConfigHandler.java
+++ b/src/main/java/world/bentobox/bentobox/database/flatfile/ConfigHandler.java
@@ -25,7 +25,7 @@ public class ConfigHandler extends FlatFileDatabaseHandler {
saveObject(instance);
}
- public T loadSettings(String uniqueId, T dbConfig) throws InstantiationException, IllegalAccessException, InvocationTargetException, ClassNotFoundException, IntrospectionException {
+ public T loadSettings(String uniqueId, T dbConfig) throws InstantiationException, IllegalAccessException, InvocationTargetException, ClassNotFoundException, IntrospectionException, IllegalArgumentException, NoSuchMethodException, SecurityException {
if (dbConfig == null) {
return loadObject(uniqueId);
}
diff --git a/src/main/java/world/bentobox/bentobox/database/flatfile/FlatFileDatabaseHandler.java b/src/main/java/world/bentobox/bentobox/database/flatfile/FlatFileDatabaseHandler.java
index 7e246b740..1bf91cb29 100644
--- a/src/main/java/world/bentobox/bentobox/database/flatfile/FlatFileDatabaseHandler.java
+++ b/src/main/java/world/bentobox/bentobox/database/flatfile/FlatFileDatabaseHandler.java
@@ -72,7 +72,7 @@ public class FlatFileDatabaseHandler extends AbstractDatabaseHandler {
* @see world.bentobox.bentobox.database.AbstractDatabaseHandler#loadObject(java.lang.String)
*/
@Override
- public T loadObject(String key) throws InstantiationException, IllegalAccessException, InvocationTargetException, ClassNotFoundException, IntrospectionException {
+ public T loadObject(String key) throws InstantiationException, IllegalAccessException, InvocationTargetException, ClassNotFoundException, IntrospectionException, IllegalArgumentException, NoSuchMethodException, SecurityException {
// Objects are loaded from a folder named after the simple name of the class being stored
String path = DATABASE_FOLDER_NAME + File.separator + dataObject.getSimpleName();
// This path and key can be overridden by the StoreAt annotation in the code
@@ -97,7 +97,7 @@ public class FlatFileDatabaseHandler extends AbstractDatabaseHandler {
* @see world.bentobox.bentobox.database.AbstractDatabaseHandler#loadObjects()
*/
@Override
- public List loadObjects() throws InstantiationException, IllegalAccessException, InvocationTargetException, ClassNotFoundException, IntrospectionException {
+ public List loadObjects() throws InstantiationException, IllegalAccessException, InvocationTargetException, ClassNotFoundException, IntrospectionException, IllegalArgumentException, NoSuchMethodException, SecurityException {
// In this case, all the objects of a specific type are being loaded.
List list = new ArrayList<>();
// Look for any files that end in .yml in the folder
@@ -135,10 +135,13 @@ public class FlatFileDatabaseHandler extends AbstractDatabaseHandler {
* @param config - YAML config file
*
* @return filled with values
+ * @throws SecurityException
+ * @throws NoSuchMethodException
+ * @throws IllegalArgumentException
*/
- private T createObject(YamlConfiguration config) throws InstantiationException, IllegalAccessException, IntrospectionException, InvocationTargetException, ClassNotFoundException {
+ private T createObject(YamlConfiguration config) throws InstantiationException, IllegalAccessException, IntrospectionException, InvocationTargetException, ClassNotFoundException, IllegalArgumentException, NoSuchMethodException, SecurityException {
// Create a new instance of the dataObject of type T (which can be any class)
- T instance = dataObject.newInstance();
+ T instance = dataObject.getDeclaredConstructor().newInstance();
// Run through all the fields in the object
for (Field field : dataObject.getDeclaredFields()) {
@@ -167,7 +170,7 @@ public class FlatFileDatabaseHandler extends AbstractDatabaseHandler {
// Get the original value to be stored
Object value = config.get(storageLocation);
// Invoke the deserialization on this value
- method.invoke(instance, ((AdapterInterface,?>)adapterNotation.value().newInstance()).deserialize(value));
+ method.invoke(instance, ((AdapterInterface,?>)adapterNotation.value().getDeclaredConstructor().newInstance()).deserialize(value));
// We are done here. If a custom adapter was defined, the rest of this method does not need to be run
continue;
}
@@ -354,8 +357,8 @@ public class FlatFileDatabaseHandler extends AbstractDatabaseHandler {
if (adapterNotation != null && AdapterInterface.class.isAssignableFrom(adapterNotation.value())) {
// A conversion adapter has been defined
try {
- config.set(storageLocation, ((AdapterInterface,?>)adapterNotation.value().newInstance()).serialize(value));
- } catch (InstantiationException e) {
+ config.set(storageLocation, ((AdapterInterface,?>)adapterNotation.value().getDeclaredConstructor().newInstance()).serialize(value));
+ } catch (InstantiationException | IllegalArgumentException | NoSuchMethodException | SecurityException e) {
plugin.logError("Could not instatiate adapter " + adapterNotation.value().getName() + " " + e.getMessage());
}
// We are done here
diff --git a/src/main/java/world/bentobox/bentobox/database/mysql/MySQLDatabaseConnector.java b/src/main/java/world/bentobox/bentobox/database/mysql/MySQLDatabaseConnector.java
index 45a7a0aa7..14184c55e 100644
--- a/src/main/java/world/bentobox/bentobox/database/mysql/MySQLDatabaseConnector.java
+++ b/src/main/java/world/bentobox/bentobox/database/mysql/MySQLDatabaseConnector.java
@@ -24,12 +24,12 @@ public class MySQLDatabaseConnector implements DatabaseConnector {
public MySQLDatabaseConnector(DatabaseConnectionSettingsImpl dbSettings) {
this.dbSettings = dbSettings;
try {
- Class.forName("com.mysql.jdbc.Driver").newInstance();
+ Class.forName("com.mysql.jdbc.Driver").getDeclaredConstructor().newInstance();
} catch (Exception e) {
Bukkit.getLogger().severe("Could not instantiate JDBC driver! " + e.getMessage());
}
- // jdbc:mysql://localhost:3306/Peoples?autoReconnect=true&useSSL=false
- connectionUrl = "jdbc:mysql://" + dbSettings.getHost() + ":" + dbSettings.getPort() + "/" + dbSettings.getDatabaseName() + "?autoReconnect=true&useSSL=false&allowMultiQueries=true";
+ connectionUrl = "jdbc:mysql://" + dbSettings.getHost() + ":" + dbSettings.getPort() + "/" + dbSettings.getDatabaseName()
+ + "?autoReconnect=true&useSSL=false&allowMultiQueries=true";
}
@Override