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
                 }
             }

Reply via email to