Пример #1
0
 @Override
 public synchronized void commit() throws SailException {
   flushArchive();
   if (trx != null) {
     for (Statement st : arch) {
       Resource ctx = st.getContext();
       if (ctx instanceof URI) {
         modified.add(ctx);
       }
     }
     for (Resource ctx : modified) {
       if (isObsolete(ctx)) {
         super.addStatement(ctx, RDF.TYPE, Audit.OBSOLETE, trx);
       }
     }
     GregorianCalendar cal = new GregorianCalendar();
     XMLGregorianCalendar xgc = factory.newXMLGregorianCalendar(cal);
     Literal now = vf.createLiteral(xgc);
     super.addStatement(trx, RDF.TYPE, TRANSACTION, trx);
     super.addStatement(trx, COMMITTED_ON, now, trx);
     for (Resource predecessor : predecessors) {
       super.addStatement(trx, PREDECESSOR, predecessor, trx);
     }
     sail.recent(trx, getWrappedConnection());
   }
   super.commit();
   metadata.clear();
   revised.clear();
   modified.clear();
   arch.clear();
   if (trx != null) {
     sail.committed(trx, predecessors);
     predecessors = Collections.singleton(trx);
     trx = null;
   }
 }