private int sub() throws Exception { Array<P2<String, Option<UUID>>> parse = outvoicePaidClient.parse(outvoicePaidClient.get()); int i = 0; for (P2<String, Option<UUID>> p : parse) { RegistrationsSqlMapper.Registration registration; try (Connection c = dataSource.getConnection()) { c.setAutoCommit(false); Option<UUID> apiClientRef = p._2(); if (apiClientRef.isNone()) continue; Option<UUID> registrationId = registrationsSqlMapper.invoiceReferenceToRegistrationId(c, apiClientRef.some()); if (registrationId.isNone()) continue; registration = registrationsSqlMapper.one(c, registrationId.some()).some(); } if (registration.tuple.state != RegistrationState.INVOICING) continue; markAsPaidService.markAsPaid(registration.id); i++; } return i; }