diff --git a/src/java/org/apache/cassandra/utils/FBUtilities.java b/src/java/org/apache/cassandra/utils/FBUtilities.java index 5db6511534..732899d674 100644 --- a/src/java/org/apache/cassandra/utils/FBUtilities.java +++ b/src/java/org/apache/cassandra/utils/FBUtilities.java @@ -695,7 +695,7 @@ public class FBUtilities try { - FBUtilities.classForName(className, "Audit logger"); + FBUtilities.classForNameWithoutInitialization(className, "Audit logger", IAuditLogger.class); } catch (ConfigurationException e) { diff --git a/test/unit/org/apache/cassandra/utils/FBUtilitiesTest.java b/test/unit/org/apache/cassandra/utils/FBUtilitiesTest.java index e32bf7d74d..da73005221 100644 --- a/test/unit/org/apache/cassandra/utils/FBUtilitiesTest.java +++ b/test/unit/org/apache/cassandra/utils/FBUtilitiesTest.java @@ -52,6 +52,7 @@ import org.apache.cassandra.exceptions.ConfigurationException; import static org.assertj.core.api.Assertions.assertThatThrownBy; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; import static org.junit.Assert.fail; public class FBUtilitiesTest @@ -101,6 +102,17 @@ public class FBUtilitiesTest assertFalse(ClassLoadingTestSupport.wasInitialized(ClassLoadingTestNonAssignable.class)); } + @Test + public void testIsAuditLoggerClassExistsRejectsWrongTypeWithoutInitializing() + { + ClassLoadingTestSupport.assertNotInitialized(ClassLoadingTestNonAssignable.class); + assertFalse(FBUtilities.isAuditLoggerClassExists(ClassLoadingTestNonAssignable.class.getName())); + assertFalse(ClassLoadingTestSupport.wasInitialized(ClassLoadingTestNonAssignable.class)); + + assertTrue(FBUtilities.isAuditLoggerClassExists("NoOpAuditLogger")); + assertFalse(FBUtilities.isAuditLoggerClassExists("does.not.ExistAuditLogger")); + } + @Test public void testCompareByteSubArrays() {