@Override protected RunTransactionalReturnData runTransactional() throws Exception { for (StatementAuthoritySignature signature : signatures) { if (signature.isValid()) { Statement statement = signature.getStatement(getTransaction()); if (!(statement instanceof RootContext)) { ContextAuthority contextAuthority = statement.getContext(getTransaction()).getAuthority(getTransaction()); if (contextAuthority != null) { DelegateAuthorizer da = contextAuthority .delegateAuthorizerByAuthorizerMap( getTransaction(), statement.prefix(getTransaction())) .get(signature.getAuthorizer(getTransaction())); if (da != null) { if (da.isSigned() && (da.getDelegate(getTransaction()) instanceof PrivatePerson)) { DelegateTreeRootNode rn = da.getDelegateTreeRootNode(getTransaction()); if (rn.isSigned()) { da.addRevokedSignatureUuid(signature.getSignatureUuid()); da.sign(getTransaction()); da.persistenceUpdate(getTransaction()); } else getErr() .println( "Signature: " + signature.getAuthorizer(getTransaction()) + "'s delegate tree root node is not signed"); } else getErr() .println( "Signature: " + signature.getAuthorizer(getTransaction()) + " non-revokable"); } else getErr() .println( "Signature: " + signature.getAuthorizer(getTransaction()) + " has no delegate authorizer"); } else getErr() .println( "Signature: " + signature.getAuthorizer(getTransaction()) + " has no context authority (!?)"); } else getErr() .println( "Signature: " + signature.getAuthorizer(getTransaction()) + " is for a root context"); } else getErr().println("Signature: " + signature.getAuthorizer(getTransaction()) + " not valid"); } return null; }