diff --git a/build.gradle b/build.gradle
index cbae83c..c69f574 100644
--- a/build.gradle
+++ b/build.gradle
@@ -64,6 +64,7 @@ jar {
}
pmd {
+ toolVersion = "7.2.0"
ignoreFailures = false
ruleSetFiles = files("rulesets/java-sheepit.xml")
ruleSets = []
diff --git a/rulesets/java-sheepit.xml b/rulesets/java-sheepit.xml
index 824de53..5224df8 100644
--- a/rulesets/java-sheepit.xml
+++ b/rulesets/java-sheepit.xml
@@ -9,21 +9,39 @@
SheepIt client custom rules
-
-
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
@@ -32,40 +50,83 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -76,73 +137,10 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
diff --git a/src/main/java/com/sheepit/client/ChunkInputStream.java b/src/main/java/com/sheepit/client/ChunkInputStream.java
index 33105c7..e557b01 100644
--- a/src/main/java/com/sheepit/client/ChunkInputStream.java
+++ b/src/main/java/com/sheepit/client/ChunkInputStream.java
@@ -9,12 +9,13 @@ import java.io.IOException;
import java.io.InputStream;
import java.nio.file.Path;
import java.util.ArrayDeque;
+import java.util.Deque;
import java.util.List;
import java.util.NoSuchElementException;
public class ChunkInputStream extends InputStream {
- @NonNull private final ArrayDeque chunkPaths;
+ @NonNull private final Deque chunkPaths;
@NonNull private BufferedInputStream currentStream;
/**
diff --git a/src/main/java/com/sheepit/client/Client.java b/src/main/java/com/sheepit/client/Client.java
index daa2e85..c6d07a5 100644
--- a/src/main/java/com/sheepit/client/Client.java
+++ b/src/main/java/com/sheepit/client/Client.java
@@ -619,7 +619,7 @@ import okhttp3.HttpUrl;
// Insert the info at the beginning of the error log
writer.write(logHeader.toString().getBytes());
- Optional> logs = this.log.getForCheckPoint(step);
+ Optional> logs = this.log.getForCheckPoint(step);
if (logs.isPresent()) {
for (String line : logs.get()) {
writer.write(line.getBytes());
@@ -799,7 +799,7 @@ import okhttp3.HttpUrl;
int threads = Math.max(1, Math.min(total, 12)); // at least one thread, to avoid IllegalArgumentException if total = 0
ExecutorService executor = Executors.newFixedThreadPool(threads);
- ArrayList> tasks = new ArrayList<>();
+ List> tasks = new ArrayList<>();
this.gui.getDownloadProgress().reset("Downloading project");
@@ -944,6 +944,7 @@ import okhttp3.HttpUrl;
return 0;
}
+ @SuppressWarnings("unused") // Suppress false positive about this.isValidatingJob - PMD rule cannot detect time-sensitive reads
protected Error.Type confirmJob(Job ajob, int checkpoint) {
String urlReal = String.format(LOCALE, "%s&rendertime=%d&preptime=%d&memoryused=%s", ajob.getValidationUrl(), ajob.getProcessRender().getRenderDuration(), ajob.getProcessRender().getScenePrepDuration(),
ajob.getProcessRender().getPeakMemoryUsed());
diff --git a/src/main/java/com/sheepit/client/Configuration.java b/src/main/java/com/sheepit/client/Configuration.java
index 5fd0714..68d0804 100644
--- a/src/main/java/com/sheepit/client/Configuration.java
+++ b/src/main/java/com/sheepit/client/Configuration.java
@@ -370,11 +370,11 @@ import lombok.Data;
* @return an ArrayList of Strings containing all logs of the FSHealth check
*/
public List filesystemHealthCheck() {
- ArrayList logs = new ArrayList<>();
+ List logs = new ArrayList<>();
String f = "FSHealth: ";
logs.add(f + "FilesystemHealthCheck started");
- ArrayList dirsToCheck = new ArrayList<>();
- ArrayList dirsChecked = new ArrayList<>();
+ List dirsToCheck = new ArrayList<>();
+ List dirsChecked = new ArrayList<>();
dirsToCheck.add(workingDirectory.getAbsoluteFile());
if (sharedDownloadsDirectory != null && dirsToCheck.contains(sharedDownloadsDirectory.getAbsoluteFile()) == false) {
dirsToCheck.add(sharedDownloadsDirectory.getAbsoluteFile());
diff --git a/src/main/java/com/sheepit/client/Error.java b/src/main/java/com/sheepit/client/Error.java
index 7a733bc..9f6de34 100644
--- a/src/main/java/com/sheepit/client/Error.java
+++ b/src/main/java/com/sheepit/client/Error.java
@@ -128,13 +128,13 @@ public class Error {
}
public static ServerCode fromInt(int val) {
- ServerCode[] As = ServerCode.values();
+ ServerCode[] As = values();
for (ServerCode A : As) {
if (A.getValue() == val) {
return A;
}
}
- return ServerCode.UNKNOWN;
+ return UNKNOWN;
}
}
diff --git a/src/main/java/com/sheepit/client/Job.java b/src/main/java/com/sheepit/client/Job.java
index 902637d..2c6bf36 100644
--- a/src/main/java/com/sheepit/client/Job.java
+++ b/src/main/java/com/sheepit/client/Job.java
@@ -470,7 +470,7 @@ import java.util.regex.Pattern;
// Once the process is finished (either finished successfully or with an error) move back to
// base icon (isolated S with no progress bar)
- gui.updateTrayIcon(Job.SHOW_BASE_ICON);
+ gui.updateTrayIcon(SHOW_BASE_ICON);
return Error.Type.RENDERER_OUT_OF_MEMORY;
}
@@ -494,7 +494,7 @@ import java.util.regex.Pattern;
}
// Put back base icon
- gui.updateTrayIcon(Job.SHOW_BASE_ICON);
+ gui.updateTrayIcon(SHOW_BASE_ICON);
process.kill();
maybeCleanWorkingDir(error);
for (String logline : configuration.filesystemHealthCheck()) {
@@ -545,7 +545,7 @@ import java.util.regex.Pattern;
}
// Put back base icon
- gui.updateTrayIcon(Job.SHOW_BASE_ICON);
+ gui.updateTrayIcon(SHOW_BASE_ICON);
log.debug("end of rendering");
@@ -714,7 +714,7 @@ import java.util.regex.Pattern;
}
private void updateRenderingStatus(String line, int progress) {
- if (getUpdateRenderingStatusMethod() == null || getUpdateRenderingStatusMethod().equals(Job.UPDATE_METHOD_BY_REMAINING_TIME)) {
+ if (getUpdateRenderingStatusMethod() == null || UPDATE_METHOD_BY_REMAINING_TIME.equals(getUpdateRenderingStatusMethod())) {
String search_remaining = "remaining:";
int index = line.toLowerCase().indexOf(search_remaining);
if (index != -1) {
@@ -760,7 +760,7 @@ import java.util.regex.Pattern;
}
}
}
- else if (Job.UPDATE_METHOD_BY_TILE.equals(getUpdateRenderingStatusMethod())) {
+ else if (UPDATE_METHOD_BY_TILE.equals(getUpdateRenderingStatusMethod())) {
String search = " Tile ";
int index = line.lastIndexOf(search);
if (index != -1) {
diff --git a/src/main/java/com/sheepit/client/Log.java b/src/main/java/com/sheepit/client/Log.java
index 1075e8c..7c86444 100644
--- a/src/main/java/com/sheepit/client/Log.java
+++ b/src/main/java/com/sheepit/client/Log.java
@@ -29,6 +29,7 @@ import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
+import java.util.List;
import java.util.Map;
import java.util.Optional;
@@ -39,7 +40,7 @@ public final class Log {
private static Log instance = null;
- private Map> checkpoints = new HashMap>();
+ private Map> checkpoints = new HashMap<>();
private int lastCheckPoint;
private DateFormat dateFormat;
@@ -120,7 +121,7 @@ public final class Log {
return this.lastCheckPoint;
}
- public Optional> getForCheckPoint(int point_) {
+ public Optional> getForCheckPoint(int point_) {
return Optional.ofNullable(this.checkpoints.get(point_));
}
@@ -149,8 +150,8 @@ public final class Log {
}
public static synchronized void printCheckPoint(int point_) {
- Log log = Log.getInstance(null);
- Optional> logs = log.getForCheckPoint(point_);
+ Log log = getInstance(null);
+ Optional> logs = log.getForCheckPoint(point_);
if (logs.isPresent()) {
for (String alog : logs.get()) {
System.out.println(alog);
diff --git a/src/main/java/com/sheepit/client/Server.java b/src/main/java/com/sheepit/client/Server.java
index 46adcbb..29655cd 100644
--- a/src/main/java/com/sheepit/client/Server.java
+++ b/src/main/java/com/sheepit/client/Server.java
@@ -178,7 +178,7 @@ public class Server extends Thread {
}
}
try {
- Thread.sleep(60 * 1000); // 1min
+ sleep(60 * 1000); // 1min
}
catch (InterruptedException e) {
return;
diff --git a/src/main/java/com/sheepit/client/SettingsLoader.java b/src/main/java/com/sheepit/client/SettingsLoader.java
index 5df7392..ea8e852 100644
--- a/src/main/java/com/sheepit/client/SettingsLoader.java
+++ b/src/main/java/com/sheepit/client/SettingsLoader.java
@@ -502,7 +502,7 @@ public class SettingsLoader {
if (device != null) {
config.setGPUDevice(device);
}
- else if (config.getUIType() != null && (config.getUIType().equals(GuiText.type) || config.getUIType().equals(GuiTextOneLine.type))) {
+ else if (config.getUIType() != null && (GuiText.type.equals(config.getUIType()) || GuiTextOneLine.type.equals(config.getUIType()))) {
System.err.println("SettingsLoader::merge could not find specified GPU");
System.exit(2);
}
@@ -533,7 +533,7 @@ public class SettingsLoader {
}
if (config.getTheme() == null) {
- if (this.theme != null && (this.theme.getValue().equals("dark") || this.theme.getValue().equals("light"))) {
+ if (this.theme != null && ("dark".equals(this.theme.getValue()) || "light".equals(this.theme.getValue()))) {
config.setTheme(this.theme.getValue());
}
else {
@@ -547,7 +547,7 @@ public class SettingsLoader {
// if the user has invoked the app with --no-systray, then we just overwrite the existing configuration with (boolean)false. If no parameter has been
// specified and the settings file contains use-systray=false, then deactivate as well.
- if (!config.isUseSysTray() || (config.isUseSysTray() && useSysTray != null && useSysTray.getValue().equals("false"))) {
+ if (!config.isUseSysTray() || (config.isUseSysTray() && useSysTray != null && "false".equals(useSysTray.getValue()))) {
config.setUseSysTray(false);
}
diff --git a/src/main/java/com/sheepit/client/Utils.java b/src/main/java/com/sheepit/client/Utils.java
index 9f3cb37..739804c 100644
--- a/src/main/java/com/sheepit/client/Utils.java
+++ b/src/main/java/com/sheepit/client/Utils.java
@@ -331,7 +331,7 @@ public class Utils {
mimeType = URLConnection.guessContentTypeFromName(file);
}
- if (mimeType == null || (mimeType.equals("image/aces") && file.toLowerCase().endsWith(".exr"))) {
+ if (mimeType == null || ("image/aces".equals(mimeType) && file.toLowerCase().endsWith(".exr"))) {
try {
String extension = file.substring(file.lastIndexOf('.'));
mimeType = mimeTypes.get(extension);
diff --git a/src/main/java/com/sheepit/client/hardware/gpu/GPU.java b/src/main/java/com/sheepit/client/hardware/gpu/GPU.java
index c6a30ff..a856f86 100644
--- a/src/main/java/com/sheepit/client/hardware/gpu/GPU.java
+++ b/src/main/java/com/sheepit/client/hardware/gpu/GPU.java
@@ -68,12 +68,8 @@ public class GPU {
public static boolean hasHIPDevices() {
OS os = OS.getOS();
- if (os instanceof Windows) { // for now we only allow AMD on Windows
- return HIP.hasHIPDevices();
- }
- else {
- return false;
- }
+ // for now we only allow AMD on Windows
+ return os instanceof Windows && HIP.hasHIPDevices();
}
public static GPUDevice getGPUDevice(String deviceId) {
diff --git a/src/main/java/com/sheepit/client/os/windows/WinProcess.java b/src/main/java/com/sheepit/client/os/windows/WinProcess.java
index 153ae59..42a04ee 100644
--- a/src/main/java/com/sheepit/client/os/windows/WinProcess.java
+++ b/src/main/java/com/sheepit/client/os/windows/WinProcess.java
@@ -164,7 +164,7 @@ public class WinProcess {
}
private List getChildren() throws IOException {
- ArrayList result = new ArrayList();
+ List result = new ArrayList<>();
WinNT.HANDLE hSnap = this.kernel32lib.CreateToolhelp32Snapshot(Kernel32Lib.TH32CS_SNAPPROCESS, new DWORD(0));
Kernel32Lib.PROCESSENTRY32.ByReference ent = new Kernel32Lib.PROCESSENTRY32.ByReference();
diff --git a/src/main/java/com/sheepit/client/standalone/GuiSwing.java b/src/main/java/com/sheepit/client/standalone/GuiSwing.java
index e7f48d8..61aa26a 100644
--- a/src/main/java/com/sheepit/client/standalone/GuiSwing.java
+++ b/src/main/java/com/sheepit/client/standalone/GuiSwing.java
@@ -193,7 +193,7 @@ public class GuiSwing extends JFrame implements Gui {
setTitle(title);
setSize(WIDTH, 760);
- setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
+ setDefaultCloseOperation(EXIT_ON_CLOSE);
panel = new JPanel();
panel.setLayout(new GridBagLayout());
@@ -406,7 +406,7 @@ public class GuiSwing extends JFrame implements Gui {
if (sysTray != null && SystemTray.isSupported()) {
sysTray.remove(trayIcon);
setVisible(true);
- setExtendedState(getExtendedState() & ~JFrame.ICONIFIED & JFrame.NORMAL); // for toFront and requestFocus to actually work
+ setExtendedState(getExtendedState() & ~ICONIFIED & NORMAL); // for toFront and requestFocus to actually work
toFront();
requestFocus();
}
diff --git a/src/main/java/com/sheepit/client/standalone/Worker.java b/src/main/java/com/sheepit/client/standalone/Worker.java
index 7ecfde3..4b2baaa 100644
--- a/src/main/java/com/sheepit/client/standalone/Worker.java
+++ b/src/main/java/com/sheepit/client/standalone/Worker.java
@@ -127,7 +127,7 @@ public class Worker {
new Worker().doMain(args);
}
- public void doMain(String[] args) {
+ public void doMain(String... args) {
CmdLineParser parser = new CmdLineParser(this);
try {
parser.parseArgument(args);
diff --git a/src/main/java/com/sheepit/client/standalone/swing/activity/Settings.java b/src/main/java/com/sheepit/client/standalone/swing/activity/Settings.java
index 1b9b3b2..2643478 100644
--- a/src/main/java/com/sheepit/client/standalone/swing/activity/Settings.java
+++ b/src/main/java/com/sheepit/client/standalone/swing/activity/Settings.java
@@ -28,6 +28,7 @@ import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.File;
import java.net.MalformedURLException;
+import java.util.Dictionary;
import java.util.Hashtable;
import java.util.LinkedList;
import java.util.List;
@@ -357,7 +358,7 @@ public class Settings implements Activity {
step += 1000000;
display = (double) all_ram / (double) step;
}
- Hashtable labelTable = new Hashtable();
+ Dictionary labelTable = new Hashtable<>();
for (int g = 0; g < all_ram; g += step) {
labelTable.put(g, new JLabel("" + (g / 1000000)));
}
@@ -395,7 +396,7 @@ public class Settings implements Activity {
// -19 is highest priority
boolean high_priority_support = os.isHighPrioritySupported();
priority = new JSlider(high_priority_support ? -19 : 0, 19);
- Hashtable labelTablePriority = new Hashtable<>();
+ Dictionary labelTablePriority = new Hashtable<>();
labelTablePriority.put(high_priority_support ? -19 : 0, new JLabel("Low"));
labelTablePriority.put(19, new JLabel("High"));
priority.setLabelTable(labelTablePriority);
diff --git a/src/main/java/com/sheepit/client/standalone/text/CLIInputObserver.java b/src/main/java/com/sheepit/client/standalone/text/CLIInputObserver.java
index e1bc0e8..ce6a54e 100644
--- a/src/main/java/com/sheepit/client/standalone/text/CLIInputObserver.java
+++ b/src/main/java/com/sheepit/client/standalone/text/CLIInputObserver.java
@@ -45,7 +45,7 @@ public class CLIInputObserver implements Runnable {
in = new BufferedReader(new InputStreamReader(System.in));
String line = "";
- while ((line != null) && (line.equalsIgnoreCase("quit") == false)) {
+ while ((line != null) && ("quit".equalsIgnoreCase(line) == false)) {
try {
line = in.readLine();
}