Author: [log in to unmask]
Date: Fri Aug 28 12:37:50 2015
New Revision: 3436
Log:
Make sure EPICS data insert does not fail if a variable is missing.
Modified:
java/trunk/record-util/src/main/java/org/hps/rundb/EpicsDataDaoImpl.java
Modified: java/trunk/record-util/src/main/java/org/hps/rundb/EpicsDataDaoImpl.java
=============================================================================
--- java/trunk/record-util/src/main/java/org/hps/rundb/EpicsDataDaoImpl.java (original)
+++ java/trunk/record-util/src/main/java/org/hps/rundb/EpicsDataDaoImpl.java Fri Aug 28 12:37:50 2015
@@ -200,7 +200,6 @@
if (epicsDataList.isEmpty()) {
throw new IllegalArgumentException("The EPICS data list is empty.");
}
- System.out.println("inserting " + epicsDataList.size() + " EPICS records");
PreparedStatement insertHeaderStatement = null;
try {
insertHeaderStatement = connection.prepareStatement(
@@ -233,7 +232,12 @@
insertStatement.setInt(1, headerId);
int parameterIndex = 2;
for (final EpicsVariable variable : variables) {
- insertStatement.setDouble(parameterIndex, epicsData.getValue(variable.getVariableName()));
+ final String variableName = variable.getVariableName();
+ double value = 0;
+ if (epicsData.hasKey(variableName)) {
+ value = epicsData.getValue(variableName);
+ }
+ insertStatement.setDouble(parameterIndex, value);
++parameterIndex;
}
final int dataRowsCreated = insertStatement.executeUpdate();
|