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);