diff --git a/src/main/java/org/gcube/accounting/persistence/AccountingPersistenceBackendMonitor.java b/src/main/java/org/gcube/accounting/persistence/AccountingPersistenceBackendMonitor.java index 10a9940..0563f62 100644 --- a/src/main/java/org/gcube/accounting/persistence/AccountingPersistenceBackendMonitor.java +++ b/src/main/java/org/gcube/accounting/persistence/AccountingPersistenceBackendMonitor.java @@ -45,7 +45,13 @@ public class AccountingPersistenceBackendMonitor implements Runnable { UsageRecord usageRecord = BasicUsageRecord.getUsageRecord(line); accountingPersistenceBackend.accountWithFallback(usageRecord); } catch(Exception e){ - logger.error("Line {} will be lost", line, e); + logger.error("Was not possible parse line {} to obtain a valid UsageRecord. Going to writing back this line as string fallback file.", line, e); + FallbackPersistenceBackend fallbackPersistenceBackend = accountingPersistenceBackend.getFallbackPersistence(); + try { + fallbackPersistenceBackend.printLine(line); + } catch (Exception e1) { + logger.error("Was not possible Line {} will be lost", line, e1); + } } } } catch (FileNotFoundException e) { diff --git a/src/main/java/org/gcube/accounting/persistence/FallbackPersistenceBackend.java b/src/main/java/org/gcube/accounting/persistence/FallbackPersistenceBackend.java index 448a15d..eb96297 100644 --- a/src/main/java/org/gcube/accounting/persistence/FallbackPersistenceBackend.java +++ b/src/main/java/org/gcube/accounting/persistence/FallbackPersistenceBackend.java @@ -48,18 +48,22 @@ public class FallbackPersistenceBackend extends AccountingPersistenceBackend { */ @Override protected void reallyAccount(UsageRecord usageRecord) throws Exception { + printLine(String.valueOf( usageRecord)); + } + + public void printLine(String line) throws Exception { synchronized (accountingFallbackFile) { try(FileWriter fw = new FileWriter(accountingFallbackFile, true); BufferedWriter bw = new BufferedWriter(fw); PrintWriter out = new PrintWriter(bw)){ - out.println(usageRecord); + out.println(line); out.flush(); } catch( IOException e ){ throw e; } } } - + /** * {@inheritDoc} */