diff --git a/pom.xml b/pom.xml index 3773c49787ebf331f761a4ef4028a7e5f4da1b69..43693c6690d38c8bb0f8f530d398df822c0af8aa 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ </parent> <groupId>fr.soleil.deviceservers</groupId> <artifactId>hdbtdbArchivingServers</artifactId> - <version>2.5.7-SNAPSHOT</version> + <version>2.5.8</version> <name>hdbtdbArchivingServers</name> <developers> <developer> diff --git a/src/main/java/TdbArchiver/Collector/Tools/FileTools.java b/src/main/java/TdbArchiver/Collector/Tools/FileTools.java index b16f2ee1ca633b076849ab39e55c812c69f84765..a3a848a13691e7714ac195193902084ec56b5815 100644 --- a/src/main/java/TdbArchiver/Collector/Tools/FileTools.java +++ b/src/main/java/TdbArchiver/Collector/Tools/FileTools.java @@ -232,6 +232,7 @@ import fr.soleil.archiving.hdbtdb.api.tools.SpectrumEvent_RO; import fr.soleil.archiving.hdbtdb.api.tools.SpectrumEvent_RW; public class FileTools { + private static final String NAN_VALUE = "NAN"; private final int dataFormat; private final int writable; private String fileName; @@ -302,7 +303,7 @@ public class FileTools { exportFileToDB(fileName); } } catch (final IOException e) { - StringBuilder messageBuilder = new StringBuilder(); + final StringBuilder messageBuilder = new StringBuilder(); messageBuilder.append("ERROR !! ").append("\r\n").append("\t Origin : \t ").append("FileTools.initFile") .append("\r\n").append("\t Reason : \t ").append(e.getClass().getName()).append("\r\n") .append("\t Description : \t ").append(e.getMessage()).append("\r\n") @@ -334,10 +335,13 @@ public class FileTools { if (isValidLine(timeStampValue)) { doExport(); if (dbProxy.getDataBase().isOracle()) { - if (readValue == null || GlobalConst.ARCHIVER_NULL_VALUE.equalsIgnoreCase(readValue.trim())) { + // XXX : regression for oracle that do no more support NaN. cf JIRA SOLEIL CTRLDESK-2282 + if (readValue == null || readValue.equalsIgnoreCase(NAN_VALUE) + || GlobalConst.ARCHIVER_NULL_VALUE.equalsIgnoreCase(readValue.trim())) { readValue = GlobalConst.ORACLE_NULL_VALUE; } - if (writeValue == null || GlobalConst.ARCHIVER_NULL_VALUE.equalsIgnoreCase(writeValue.trim())) { + if (writeValue == null || writeValue.equalsIgnoreCase(NAN_VALUE) + || GlobalConst.ARCHIVER_NULL_VALUE.equalsIgnoreCase(writeValue.trim())) { writeValue = GlobalConst.ORACLE_NULL_VALUE; } if (scalarEvent.getDataType() == TangoConst.Tango_DEV_STRING) { @@ -415,7 +419,7 @@ public class FileTools { logger.error("IOException for " + scalarEvent.getAttributeCompleteName()); throw new NoRetryException("File access error", e.getClass().getName(), null, ErrSeverity.ERR, e.getMessage(), "FileTools.processEventScalar", e); - } catch (Exception e) { + } catch (final Exception e) { e.printStackTrace(); logger.error("Unknow Exception for " + scalarEvent.getAttributeCompleteName()); if (e instanceof ArchivingException) { @@ -668,7 +672,7 @@ public class FileTools { } } catch (final IOException e) { - StringBuilder messageBuilder = new StringBuilder(); + final StringBuilder messageBuilder = new StringBuilder(); messageBuilder.append("ERROR !! ").append("\r\n").append("\t Origin : \t ") .append("FileTools.processEventImage").append("\r\n").append("\t Reason : \t ") .append(e.getClass().getName()).append("\r\n").append("\t Description : \t ") @@ -686,7 +690,7 @@ public class FileTools { /** * Switch file in an atomic action - * + * * @throws IOException * @throws ArchivingException */