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();