diff --git a/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java b/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java index ebd694a..f9530ca 100644 --- a/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java +++ b/src/main/java/org/gcube/accounting/datamodel/BasicUsageRecord.java @@ -65,6 +65,8 @@ public abstract class BasicUsageRecord implements UsageRecord, Serializable { protected static final String USAGE_RECORD_TYPE = "usageRecordType"; @RequiredField @NotEmpty public static final String SCOPE = "scope"; + + @RequiredField @ValidOperationResult public static final String OPERATION_RESULT = "operationResult"; diff --git a/src/main/java/org/gcube/accounting/persistence/Persistence.java b/src/main/java/org/gcube/accounting/persistence/Persistence.java index ea34ce9..ce8c3f2 100644 --- a/src/main/java/org/gcube/accounting/persistence/Persistence.java +++ b/src/main/java/org/gcube/accounting/persistence/Persistence.java @@ -150,9 +150,7 @@ public abstract class Persistence { /** * Persist the {@link #UsageRecord}. - * The Record is validated first, if validation fails an - * #InvalidValueException is thrown. - * If validation success, the record is accounted in a separated thread. + * The Record is validated first, then accounted, in a separated thread. * So that the program can continue the execution. * If the persistence fails the class write that the record in a local file * so that the {@link #UsageRecord} can be recorder later. @@ -160,11 +158,11 @@ public abstract class Persistence { * @throws InvalidValueException if the Record Validation Fails */ public void account(final SingleUsageRecord usageRecord) throws InvalidValueException{ - usageRecord.validate(); Runnable runnable = new Runnable(){ @Override public void run(){ try { + usageRecord.validate(); persistence.accountWithFallback(usageRecord); } catch (Exception e) { logger.error("Error accouting UsageRecod", e.getCause());