This is an automated email from the ASF dual-hosted git repository.
tmitsch pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/incubator-plc4x.git
The following commit(s) were added to refs/heads/develop by this push:
new de8877f fixed sonar bugs
de8877f is described below
commit de8877fa37378e5a7b406a69859efc76506fbb91
Author: Tim Mitsch <[email protected]>
AuthorDate: Mon Mar 11 21:39:52 2019 +0100
fixed sonar bugs
---
.../apache/plc4x/java/scraper/ScraperTaskImpl.java | 2 +-
.../triggeredscraper/TriggeredScraperImpl.java | 2 +-
.../triggeredscraper/TriggeredScraperTask.java | 14 +++++------
.../triggerhandler/TriggerConfiguration.java | 28 +++++++++++++++++-----
.../triggerhandler/TriggerHandler.java | 7 +++---
5 files changed, 35 insertions(+), 18 deletions(-)
diff --git
a/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/ScraperTaskImpl.java
b/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/ScraperTaskImpl.java
index 20fba55..f15ee84 100644
---
a/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/ScraperTaskImpl.java
+++
b/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/ScraperTaskImpl.java
@@ -145,7 +145,7 @@ public class ScraperTaskImpl implements ScraperTask {
try {
connection.close();
} catch (Exception e) {
- // intentionally do nothing
+ LOGGER.warn("Error on closing connection",e);
}
}
}
diff --git
a/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperImpl.java
b/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperImpl.java
index af06aff..40ad5d5 100644
---
a/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperImpl.java
+++
b/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperImpl.java
@@ -147,7 +147,7 @@ public class TriggeredScraperImpl implements Scraper {
// Store the handle for stopping, etc.
futures.put(task, future);
} catch (ScraperException e) {
- LOGGER.warn("Error executing the job {} for conn {}
({}) at rate {} ms",tuple.getLeft().getJobName(), tuple.getMiddle(),
tuple.getRight(), tuple.getLeft().getScrapeRate());
+ LOGGER.warn("Error executing the job {} for conn {}
({}) at rate {} ms",tuple.getLeft().getJobName(), tuple.getMiddle(),
tuple.getRight(), tuple.getLeft().getScrapeRate(),e);
}
}
diff --git
a/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperTask.java
b/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperTask.java
index c4572e9..56549a5 100644
---
a/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperTask.java
+++
b/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/TriggeredScraperTask.java
@@ -49,7 +49,7 @@ import java.util.stream.Collectors;
* ToDo Implement the monitoring as well: PLC4X-90
*/
public class TriggeredScraperTask implements ScraperTask {
- private static final Logger logger =
LoggerFactory.getLogger(TriggeredScraperTask.class);
+ private static final Logger LOGGER =
LoggerFactory.getLogger(TriggeredScraperTask.class);
private final PlcDriverManager driverManager;
private final String jobName;
@@ -91,7 +91,7 @@ public class TriggeredScraperTask implements ScraperTask {
public void run() {
if(this.triggerHandler.checkTrigger()) {
// Does a single fetch only when trigger is valid
- logger.trace("Start new scrape of task of job {} for connection
{}", jobName, connectionAlias);
+ LOGGER.trace("Start new scrape of task of job {} for connection
{}", jobName, connectionAlias);
requestCounter.incrementAndGet();
StopWatch stopWatch = new StopWatch();
stopWatch.start();
@@ -101,17 +101,17 @@ public class TriggeredScraperTask implements ScraperTask {
try {
return driverManager.getConnection(connectionString);
} catch (PlcConnectionException e) {
- logger.warn("Unable to instantiate connection to " +
connectionString, e);
+ LOGGER.warn("Unable to instantiate connection to " +
connectionString, e);
throw new PlcRuntimeException(e);
}
}, executorService);
connection = future.get(10 * requestTimeoutMs,
TimeUnit.MILLISECONDS);
- logger.trace("Connection to {} established: {}",
connectionString, connection);
+ LOGGER.trace("Connection to {} established: {}",
connectionString, connection);
PlcReadResponse response;
try {
PlcReadRequest.Builder builder =
connection.readRequestBuilder();
fields.forEach((alias, qry) -> {
- logger.trace("Requesting: {} -> {}", alias, qry);
+ LOGGER.trace("Requesting: {} -> {}", alias, qry);
builder.addItem(alias, qry);
});
response = builder
@@ -133,14 +133,14 @@ public class TriggeredScraperTask implements ScraperTask {
// Handle response (Async)
CompletableFuture.runAsync(() -> resultHandler.handle(jobName,
connectionAlias, transformResponseToMap(response)), executorService);
} catch (Exception e) {
- logger.debug("Exception during scrape", e);
+ LOGGER.debug("Exception during scrape", e);
handleException(e);
} finally {
if (connection != null) {
try {
connection.close();
} catch (Exception e) {
- // intentionally do nothing
+ LOGGER.warn("Error on closing connection",e);
}
}
}
diff --git
a/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/TriggerConfiguration.java
b/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/TriggerConfiguration.java
index 9d89b6c..a5cd508 100644
---
a/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/TriggerConfiguration.java
+++
b/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/TriggerConfiguration.java
@@ -35,14 +35,17 @@ import java.util.regex.Pattern;
*/
//ToDo: Improve structure to make it more generic --> PLC4X-89
public class TriggerConfiguration{
- private static final Logger logger =
LoggerFactory.getLogger(TriggerConfiguration.class);
+ private static final Logger LOGGER =
LoggerFactory.getLogger(TriggerConfiguration.class);
private static final String S_7_TRIGGER_VAR = "S7_TRIGGER_VAR";
private static final String SCHEDULED = "SCHEDULED";
+ private static final double TOLERANCE_FLOATING_EQUALITY = 1e-6;
+
private static final Pattern TRIGGER_STRATEGY_PATTERN =
Pattern.compile("\\((?<strategy>[A-Z_0-9]+),(?<scheduledInterval>\\d+)(,(\\((?<triggerVar>\\S+)\\))((?<comp>[!=<>]{1,2}))(\\((?<compVar>[a-z0-9.\\-]+)\\)))?\\)");
+
private final TriggerType triggerType;
private final Long scrapeInterval;
private final String triggerVariable;
@@ -77,7 +80,7 @@ public class TriggerConfiguration{
try {
this.plcField = S7Field.of(triggerVariable);
} catch (PlcInvalidFieldException e) {
- logger.debug(e.getMessage(), e);
+ LOGGER.debug(e.getMessage(), e);
String exceptionMessage = String.format("Invalid trigger Field
for Job %s: %s", triggeredScrapeJobImpl.getJobName(), triggerVariable);
throw new ScraperException(exceptionMessage);
}
@@ -168,9 +171,9 @@ public class TriggerConfiguration{
switch (this.comparatorType) {
case EQUAL:
- return currentValue == refValue;
+ return isApproximately(currentValue,refValue,
TOLERANCE_FLOATING_EQUALITY);
case UNEQUAL:
- return currentValue != refValue;
+ return !isApproximately(currentValue,refValue,
TOLERANCE_FLOATING_EQUALITY);
case SMALLER:
return currentValue < refValue;
case SMALLER_EQUAL:
@@ -284,6 +287,7 @@ public class TriggerConfiguration{
return Double.parseDouble(compareValue);
}
catch (Exception e){
+ LOGGER.debug(e.getMessage(), e);
String exceptionMessage = String.format("No valid compare
Value at DataType Numeric for trigger for Job %s:
%s",triggeredScrapeJobImpl.getJobName(),compareValue);
throw new ScraperException(exceptionMessage);
}
@@ -306,7 +310,7 @@ public class TriggerConfiguration{
String strat = matcher.group("strategy");
String scheduledMs = matcher.group("scheduledInterval");
- logger.debug("Strategy: {}, scheduled ms: {}",strat,scheduledMs);
+ LOGGER.debug("Strategy: {}, scheduled ms: {}",strat,scheduledMs);
String triggerVar = matcher.group("triggerVar");
String comparatorString = matcher.group("comp");
@@ -334,7 +338,7 @@ public class TriggerConfiguration{
private void handleException(Exception e){
//push up if needed
- logger.debug("Exception: ", e);
+ LOGGER.debug("Exception: ", e);
}
TriggerType getTriggerType() {
@@ -357,6 +361,18 @@ public class TriggerConfiguration{
return compareValue;
}
+ /**
+ * check for approximate equality to avoid "Floating-point expressions
shall not be tested for equality or inequality." Sonar-Bug
+ * @param self current value
+ * @param other reference value
+ * @param within tolerance band
+ * @return if approximate equal, false otherwise
+ */
+ private static boolean isApproximately(double self, double other, double
within)
+ {
+ return Math.abs(self - other) <= within;
+ }
+
public enum Comparators{
EQUAL,
UNEQUAL,
diff --git
a/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/TriggerHandler.java
b/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/TriggerHandler.java
index c419d5e..a2f45bb 100644
---
a/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/TriggerHandler.java
+++
b/plc4j/utils/scraper/src/main/java/org/apache/plc4x/java/scraper/triggeredscraper/triggerhandler/TriggerHandler.java
@@ -36,7 +36,7 @@ import java.util.concurrent.TimeUnit;
* holds the handler for the regarding trigger-scraper on rising-trigger edge
*/
public class TriggerHandler {
- private static final Logger logger =
LoggerFactory.getLogger(TriggerHandler.class);
+ private static final Logger LOGGER =
LoggerFactory.getLogger(TriggerHandler.class);
private static final String TRIGGER = "trigger";
private final TriggerConfiguration triggerConfiguration;
@@ -78,14 +78,14 @@ public class TriggerHandler {
try {
return
parentScraperTask.getDriverManager().getConnection(parentScraperTask.getConnectionString());
} catch (PlcConnectionException e) {
- logger.warn("Unable to instantiate connection to " +
parentScraperTask.getConnectionString(), e);
+ LOGGER.warn("Unable to instantiate connection to " +
parentScraperTask.getConnectionString(), e);
throw new PlcRuntimeException(e);
}
}, parentScraperTask.getExecutorService());
PlcConnection connection = null;
try {
connection = future.get(parentScraperTask.getRequestTimeoutMs(),
TimeUnit.MILLISECONDS);
- logger.trace("Connection to {} established: {}",
parentScraperTask.getConnectionString(), connection);
+ LOGGER.trace("Connection to {} established: {}",
parentScraperTask.getConnectionString(), connection);
PlcReadRequest.Builder builder = connection.readRequestBuilder();
builder.addItem(TRIGGER,
triggerConfiguration.getTriggerVariable());
PlcReadResponse response = builder
@@ -116,6 +116,7 @@ public class TriggerHandler {
try {
connection.close();
} catch (Exception e) {
+ LOGGER.warn("Error on closing connection",e);
// intentionally do nothing
}
}