} catch (IllegalArgumentException e) {
s_logger.info("No converter for value of type " + computedValue.getValue().getClass() + " for " + computedValue.getSpecification());
}
}
final ValueSpecification specification = computedValue.getSpecification();
if (!_riskValueSpecifications.containsKey(specification)) {
s_logger.error("Unexpected result specification " + specification + ". Result cannot be written. Result value was " + computedValue.getValue());
continue;
}
final long valueSpecificationId = _riskValueSpecifications.get(specification);
final long functionUniqueId = getFunctionUniqueIdInTransaction(specification.getFunctionUniqueId()).getId();
final long computeNodeId = getOrCreateComputeNode(computedValue.getComputeNodeId()).getId();
if (resultConverter != null && computedValue.getInvocationResult() == InvocationResult.SUCCESS) {
s_logger.debug("Writing value {} for value spec {}", computedValue.getValue(), specification);
Map<String, Double> valueAsDoublesMap = resultConverter.convert(computedValue.getSpecification().getValueName(), computedValue.getValue());
for (Map.Entry<String, Double> valueEntry : valueAsDoublesMap.entrySet()) {
final String valueName = valueEntry.getKey();
final Double doubleValue = ensureDatabasePrecision(valueEntry.getValue());
final long successId = nextId(RSK_SEQUENCE_NAME);
successes.add(getSuccessArgs(successId, riskRunId, evalInstant, calcConfId, computationTargetId, valueSpecificationId, functionUniqueId, computeNodeId, valueName, doubleValue));
}
} else {
s_logger.info("Writing failure for {} with invocation result {}, {} ",
newArray(computedValue.getSpecification(), computedValue.getInvocationResult(), computedValue.getAggregatedExecutionLog()));
specFailures = true;
final long failureId = nextId(RSK_SEQUENCE_NAME);
failures.add(getFailureArgs(failureId, riskRunId, evalInstant, calcConfId, computationTargetId, valueSpecificationId, functionUniqueId, computeNodeId, specification.getValueName()));
BatchResultWriterFailure cachedFailure = errorCache.get(specification);
if (cachedFailure != null) {
for (long computeFailureId : cachedFailure.getComputeFailureIds()) {
ArgumentChecker.notNull(computeFailureId, "computeFailureId");