You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by cl...@apache.org on 2022/10/14 15:16:58 UTC
[activemq-artemis] branch main updated: ARTEMIS-4041 Fixing tests on CriticalIOException
This is an automated email from the ASF dual-hosted git repository.
clebertsuconic pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/activemq-artemis.git
The following commit(s) were added to refs/heads/main by this push:
new 5a1dfdeb10 ARTEMIS-4041 Fixing tests on CriticalIOException
5a1dfdeb10 is described below
commit 5a1dfdeb10d81a53f9bb67c7be5823987423b663
Author: Clebert Suconic <cl...@apache.org>
AuthorDate: Thu Oct 13 14:12:52 2022 -0400
ARTEMIS-4041 Fixing tests on CriticalIOException
---
.../artemis/core/io/AbstractSequentialFileFactory.java | 12 +++++++++++-
.../activemq/artemis/core/io/SequentialFileFactory.java | 7 +++++++
.../activemq/artemis/core/journal/impl/JournalImpl.java | 16 +++++-----------
3 files changed, 23 insertions(+), 12 deletions(-)
diff --git a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/AbstractSequentialFileFactory.java b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/AbstractSequentialFileFactory.java
index bbaca71eca..4631f1f471 100644
--- a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/AbstractSequentialFileFactory.java
+++ b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/AbstractSequentialFileFactory.java
@@ -58,7 +58,7 @@ public abstract class AbstractSequentialFileFactory implements SequentialFileFac
protected volatile int alignment = -1;
- protected final IOCriticalErrorListener critialErrorListener;
+ protected IOCriticalErrorListener critialErrorListener;
protected final CriticalAnalyzer criticalAnalyzer;
@@ -97,6 +97,16 @@ public abstract class AbstractSequentialFileFactory implements SequentialFileFac
this.maxIO = maxIO;
}
+ @Override
+ public IOCriticalErrorListener getCriticalErrorListener() {
+ return critialErrorListener;
+ }
+
+ @Override
+ public void setCriticalErrorListener(IOCriticalErrorListener listener) {
+ this.critialErrorListener = listener;
+ }
+
@Override
public CriticalAnalyzer getCriticalAnalyzer() {
return criticalAnalyzer;
diff --git a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/SequentialFileFactory.java b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/SequentialFileFactory.java
index fafca07ab7..d2f9c8e34e 100644
--- a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/SequentialFileFactory.java
+++ b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/io/SequentialFileFactory.java
@@ -27,6 +27,13 @@ import org.apache.activemq.artemis.utils.critical.CriticalAnalyzer;
*/
public interface SequentialFileFactory {
+ default IOCriticalErrorListener getCriticalErrorListener() {
+ return null;
+ }
+
+ default void setCriticalErrorListener(IOCriticalErrorListener listener) {
+ }
+
default CriticalAnalyzer getCriticalAnalyzer() {
return null;
}
diff --git a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalImpl.java b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalImpl.java
index 8fb68b8e47..02eb3995fe 100644
--- a/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalImpl.java
+++ b/artemis-journal/src/main/java/org/apache/activemq/artemis/core/journal/impl/JournalImpl.java
@@ -280,9 +280,7 @@ public class JournalImpl extends JournalBase implements TestableJournal, Journal
processBackup();
} catch (Exception e) {
logger.warn(e.getMessage(), e);
- if (criticalErrorListener != null) {
- criticalErrorListener.onIOException(e, e.getMessage(), null);
- }
+ fileFactory.onIOError(e, e.getMessage());
}
return this;
@@ -296,8 +294,6 @@ public class JournalImpl extends JournalBase implements TestableJournal, Journal
// Compacting may replace this structure
private final ConcurrentLongHashMap<JournalTransaction> transactions = new ConcurrentLongHashMap<>();
- private IOCriticalErrorListener criticalErrorListener;
-
// This will be set only while the JournalCompactor is being executed
private volatile JournalCompactor compactor;
@@ -447,7 +443,7 @@ public class JournalImpl extends JournalBase implements TestableJournal, Journal
super(fileFactory.isSupportsCallbacks(), fileSize);
- this.criticalErrorListener = criticalErrorListener;
+ fileFactory.setCriticalErrorListener(criticalErrorListener);
this.providedIOThreadPool = ioExecutors;
@@ -490,12 +486,12 @@ public class JournalImpl extends JournalBase implements TestableJournal, Journal
@Override
public IOCriticalErrorListener getCriticalErrorListener() {
- return criticalErrorListener;
+ return fileFactory.getCriticalErrorListener();
}
@Override
public JournalImpl setCriticalErrorListener(IOCriticalErrorListener criticalErrorListener) {
- this.criticalErrorListener = criticalErrorListener;
+ fileFactory.setCriticalErrorListener(criticalErrorListener);
return this;
}
@@ -2477,9 +2473,7 @@ public class JournalImpl extends JournalBase implements TestableJournal, Journal
fileToCopy.getFile().renameTo(removeBackupExtension(fileToCopy.getFile().getFileName()));
} catch (Exception e) {
logger.warn(e.getMessage(), e);
- if (criticalErrorListener != null) {
- criticalErrorListener.onIOException(e, e.getMessage(), fileToCopy.getFile().getFileName());
- }
+ fileFactory.onIOError(e, e.getMessage(), fileToCopy.getFile().getFileName());
}
fileToCopy.setReclaimable(true);