From 0fd6e5bbb0d275327f106f35271eba70b8e8054d Mon Sep 17 00:00:00 2001 From: Sebastian Stenzel Date: Fri, 3 Dec 2021 12:17:07 +0100 Subject: [PATCH] fixed code smells --- .../org/cryptomator/logging/LoggerModule.java | 10 +++++---- .../ui/common/UserInteractionLock.java | 21 ++++++++++++------- .../ui/fxapp/UpdateCheckerTask.java | 2 +- .../ui/stats/VaultStatisticsController.java | 4 ++-- 4 files changed, 23 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/cryptomator/logging/LoggerModule.java b/src/main/java/org/cryptomator/logging/LoggerModule.java index 4866655e3..5031fe3be 100644 --- a/src/main/java/org/cryptomator/logging/LoggerModule.java +++ b/src/main/java/org/cryptomator/logging/LoggerModule.java @@ -79,8 +79,9 @@ public class LoggerModule { @Singleton @Named("fileAppender") static Appender provideFileAppender(LoggerContext context, PatternLayoutEncoder encoder, Environment environment) { - if (environment.getLogDir().isPresent()) { - Path logDir = environment.getLogDir().get(); + var optionalLogDir = environment.getLogDir(); + if (optionalLogDir.isPresent()) { + Path logDir = optionalLogDir.get(); RollingFileAppender appender = new RollingFileAppender<>(); appender.setContext(context); appender.setFile(logDir.resolve(LOGFILE_NAME).toString()); @@ -110,9 +111,10 @@ public class LoggerModule { @Singleton @Named("upgradeAppender") static Appender provideUpgradeAppender(LoggerContext context, PatternLayoutEncoder encoder, Environment environment) { - if (environment.getLogDir().isPresent()) { + var optionalLogDir = environment.getLogDir(); + if (optionalLogDir.isPresent()) { FileAppender appender = new FileAppender<>(); - appender.setFile(environment.getLogDir().get().resolve(UPGRADE_FILENAME).toString()); + appender.setFile(optionalLogDir.get().resolve(UPGRADE_FILENAME).toString()); appender.setContext(context); appender.setEncoder(encoder); appender.start(); diff --git a/src/main/java/org/cryptomator/ui/common/UserInteractionLock.java b/src/main/java/org/cryptomator/ui/common/UserInteractionLock.java index 4eba62552..12c394533 100644 --- a/src/main/java/org/cryptomator/ui/common/UserInteractionLock.java +++ b/src/main/java/org/cryptomator/ui/common/UserInteractionLock.java @@ -4,30 +4,35 @@ import javafx.application.Platform; import javafx.beans.property.BooleanProperty; import javafx.beans.property.ReadOnlyBooleanProperty; import javafx.beans.property.SimpleBooleanProperty; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.concurrent.atomic.AtomicReference; import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; -public class UserInteractionLock { +public class UserInteractionLock> { private final Lock lock = new ReentrantLock(); private final Condition condition = lock.newCondition(); private final BooleanProperty awaitingInteraction = new SimpleBooleanProperty(); - private volatile E state; + private final AtomicBoolean interacted = new AtomicBoolean(); + private final AtomicReference state; public UserInteractionLock(E initialValue) { - this.state = initialValue; + this.state = new AtomicReference<>(initialValue); } public synchronized void reset(E value) { - this.state = value; + state.set(value); + interacted.set(false); } public void interacted(E result) { assert Platform.isFxApplicationThread(); lock.lock(); try { - state = result; + state.set(result); + interacted.set(true); awaitingInteraction.set(false); condition.signal(); } finally { @@ -40,8 +45,10 @@ public class UserInteractionLock { lock.lock(); try { Platform.runLater(() -> awaitingInteraction.set(true)); - condition.await(); - return state; + while (!interacted.get()) { + condition.await(); + } + return state.get(); } finally { lock.unlock(); } diff --git a/src/main/java/org/cryptomator/ui/fxapp/UpdateCheckerTask.java b/src/main/java/org/cryptomator/ui/fxapp/UpdateCheckerTask.java index d9de7f2da..032148cea 100644 --- a/src/main/java/org/cryptomator/ui/fxapp/UpdateCheckerTask.java +++ b/src/main/java/org/cryptomator/ui/fxapp/UpdateCheckerTask.java @@ -23,7 +23,7 @@ public class UpdateCheckerTask extends Task { private static final Logger LOG = LoggerFactory.getLogger(UpdateCheckerTask.class); - private static final long MAX_RESPONSE_SIZE = 10 * 1024; // 10kb should be sufficient. protect against flooding + private static final long MAX_RESPONSE_SIZE = 10L * 1024; // 10kb should be sufficient. protect against flooding private static final Gson GSON = new GsonBuilder().setLenient().create(); private final HttpClient httpClient; diff --git a/src/main/java/org/cryptomator/ui/stats/VaultStatisticsController.java b/src/main/java/org/cryptomator/ui/stats/VaultStatisticsController.java index a3c430946..56729f1fe 100644 --- a/src/main/java/org/cryptomator/ui/stats/VaultStatisticsController.java +++ b/src/main/java/org/cryptomator/ui/stats/VaultStatisticsController.java @@ -127,10 +127,10 @@ public class VaultStatisticsController implements FxController { encryptedBytesWrite.getData().add(new Data<>(currentStep, encBytes)); // adjust ranges: - readChartXAxis.setLowerBound(currentStep - IO_SAMPLING_STEPS); + readChartXAxis.setLowerBound(currentStep - IO_SAMPLING_STEPS * 1.0); readChartXAxis.setUpperBound(currentStep); readChartYAxis.setUpperBound(allTimeMax); - writeChartXAxis.setLowerBound(currentStep - IO_SAMPLING_STEPS); + writeChartXAxis.setLowerBound(currentStep - IO_SAMPLING_STEPS * 1.0); writeChartXAxis.setUpperBound(currentStep); writeChartYAxis.setUpperBound(allTimeMax); }