@Override public void rollback() throws UnsupportedOperationException { commitLock.lock(); try { // flush modified records for (int segment = 0; segment < locks.length; segment++) { Lock lock = locks[segment].writeLock(); lock.lock(); try { writeCache[segment].clear(); if (caches != null) { caches[segment].clear(); } uncommittedDataLongs[segment].clear(); uncommittedIndexTable[segment].clear(); } finally { lock.unlock(); } } structuralLock.lock(); try { uncommittedStackPages.clear(); // restore headVol from backup headVol.putData(0, headVolBackup, 0, headVolBackup.length); indexPages = indexPagesBackup.clone(); wal.rollback(); wal.sync(); } finally { structuralLock.unlock(); } } finally { commitLock.unlock(); } }