protected void deleteControlFile(final SequentialFile controlFile) throws Exception { controlFile.delete(); }
@Override public void delete() throws IOException, InterruptedException, ActiveMQException { this.sequentialFile.delete(); }
@Override public void delete() throws IOException, InterruptedException, ActiveMQException { this.sequentialFile.delete(); }
protected void deleteControlFile(final SequentialFile controlFile) throws Exception { controlFile.delete(); }
private void cleanupIncompleteFiles() throws Exception { if (largeMessagesFactory != null) { List<String> tmpFiles = largeMessagesFactory.listFiles("tmp"); for (String tmpFile : tmpFiles) { SequentialFile file = largeMessagesFactory.createSequentialFile(tmpFile); file.delete(); } } }
/** * @throws Exception */ private void deleteAppendFile() throws Exception { if (appendFile != null) { if (appendFile.isOpen()) appendFile.close(); appendFile.delete(); } }
/** * @throws Exception */ private void cleanupTmpFiles(final String extension) throws Exception { List<String> leftFiles = fileFactory.listFiles(getFileExtension() + extension); if (leftFiles.size() > 0) { ActiveMQJournalLogger.LOGGER.tempFilesLeftOpen(); for (String fileToDelete : leftFiles) { ActiveMQJournalLogger.LOGGER.deletingOrphanedFile(fileToDelete); SequentialFile file = fileFactory.createSequentialFile(fileToDelete); file.delete(); } } }
/** * @throws Exception */ private void cleanupTmpFiles(final String extension) throws Exception { List<String> leftFiles = fileFactory.listFiles(getFileExtension() + extension); if (leftFiles.size() > 0) { ActiveMQJournalLogger.LOGGER.tempFilesLeftOpen(); for (String fileToDelete : leftFiles) { ActiveMQJournalLogger.LOGGER.deletingOrphanedFile(fileToDelete); SequentialFile file = fileFactory.createSequentialFile(fileToDelete); file.delete(); } } }
/** * this method is used internally only however tools may use it to maintenance. * It won't be part of the interface as the tools should be specific to the implementation */ public List<JournalFile> orderFiles() throws Exception { List<String> fileNames = fileFactory.listFiles(filesRepository.getFileExtension()); List<JournalFile> orderedFiles = new ArrayList<>(fileNames.size()); for (String fileName : fileNames) { SequentialFile file = fileFactory.createSequentialFile(fileName); if (file.size() >= SIZE_HEADER) { file.open(); try { JournalFileImpl jrnFile = readFileHeader(file); orderedFiles.add(jrnFile); } finally { file.close(); } } else { ActiveMQJournalLogger.LOGGER.ignoringShortFile(fileName); file.delete(); } } // Now order them by ordering id - we can't use the file name for ordering // since we can re-use dataFiles Collections.sort(orderedFiles, JOURNAL_FILE_COMPARATOR); return orderedFiles; }
/** * this method is used internally only however tools may use it to maintenance. * It won't be part of the interface as the tools should be specific to the implementation */ public List<JournalFile> orderFiles() throws Exception { List<String> fileNames = fileFactory.listFiles(filesRepository.getFileExtension()); List<JournalFile> orderedFiles = new ArrayList<>(fileNames.size()); for (String fileName : fileNames) { SequentialFile file = fileFactory.createSequentialFile(fileName); if (file.size() >= SIZE_HEADER) { file.open(); try { JournalFileImpl jrnFile = readFileHeader(file); orderedFiles.add(jrnFile); } finally { file.close(); } } else { ActiveMQJournalLogger.LOGGER.ignoringShortFile(fileName); file.delete(); } } // Now order them by ordering id - we can't use the file name for ordering // since we can re-use dataFiles Collections.sort(orderedFiles, JOURNAL_FILE_COMPARATOR); return orderedFiles; }
controlFile.delete(); return null; } else {
/** * Assumption is that this is only called with a writeLock on the StorageManager. */ @Override protected void performCachedLargeMessageDeletes() { largeMessagesToDelete.forEach((messageId, largeServerMessage) -> { SequentialFile msg = createFileForLargeMessage(messageId, LargeMessageExtension.DURABLE); try { msg.delete(); } catch (Exception e) { ActiveMQServerLogger.LOGGER.journalErrorDeletingMessage(e, messageId); } if (replicator != null) { replicator.largeMessageDelete(messageId, JournalStorageManager.this); } confirmLargeMessage(largeServerMessage); }); largeMessagesToDelete.clear(); }
@Override public void run() { try { readLock(); try { if (replicator != null) { replicator.largeMessageDelete(largeServerMessage.getMessageID(), JournalStorageManager.this); } file.delete(); // The confirm could only be done after the actual delete is done confirmLargeMessage(largeServerMessage); } finally { readUnLock(); } } catch (Exception e) { ActiveMQServerLogger.LOGGER.journalErrorDeletingMessage(e, largeServerMessage.getMessageID()); } }
@Test public void testDelete() throws Exception { SequentialFile sf = factory.createSequentialFile("delete-me.amq"); sf.open(); SequentialFile sf2 = factory.createSequentialFile("delete-me2.amq"); sf2.open(); List<String> fileNames = factory.listFiles("amq"); Assert.assertEquals(2, fileNames.size()); Assert.assertTrue(fileNames.contains("delete-me.amq")); Assert.assertTrue(fileNames.contains("delete-me2.amq")); sf.delete(); fileNames = factory.listFiles("amq"); Assert.assertEquals(1, fileNames.size()); Assert.assertTrue(fileNames.contains("delete-me2.amq")); sf2.close(); }
@Test public void testRename() throws Exception { SequentialFile sf = factory.createSequentialFile("test1.amq"); sf.open(); List<String> fileNames = factory.listFiles("amq"); Assert.assertEquals(1, fileNames.size()); Assert.assertTrue(fileNames.contains("test1.amq")); sf.renameTo("test1.cmp"); fileNames = factory.listFiles("cmp"); Assert.assertEquals(1, fileNames.size()); Assert.assertTrue(fileNames.contains("test1.cmp")); sf.delete(); fileNames = factory.listFiles("amq"); Assert.assertEquals(0, fileNames.size()); fileNames = factory.listFiles("cmp"); Assert.assertEquals(0, fileNames.size()); }
file.renameTo(file.getFileName() + ".invalidPage"); } else { file.delete();