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 <[email protected]>
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);