diff --git a/geode-junit/src/main/java/org/apache/geode/test/util/StressNewTestHelper.java b/geode-junit/src/main/java/org/apache/geode/test/util/StressNewTestHelper.java
index f54e571..a7a7aa3 100644
--- a/geode-junit/src/main/java/org/apache/geode/test/util/StressNewTestHelper.java
+++ b/geode-junit/src/main/java/org/apache/geode/test/util/StressNewTestHelper.java
@@ -109,7 +109,13 @@
     TestClassInfo testClassInfo = createTestClassInfo(javaFile);
     List<TestClassInfo> extenders = whatExtends(testClassInfo);
 
-    if (!scanResult.getClassInfo(testClassInfo.className).isAbstract()) {
+    ClassInfo classInfo = scanResult.getClassInfo(testClassInfo.className);
+    // This is a possibility for non org.apache.geode files
+    if (classInfo == null) {
+      return;
+    }
+
+    if (!classInfo.isAbstract()) {
       extenders.add(testClassInfo);
     }
 
diff --git a/geode-junit/src/test/java/org/apache/geode/test/util/WhatExtendsJUnitTest.java b/geode-junit/src/test/java/org/apache/geode/test/util/WhatExtendsJUnitTest.java
index 7575146..b556978 100644
--- a/geode-junit/src/test/java/org/apache/geode/test/util/WhatExtendsJUnitTest.java
+++ b/geode-junit/src/test/java/org/apache/geode/test/util/WhatExtendsJUnitTest.java
@@ -84,6 +84,12 @@
     assertThat(scanner.buildGradleCommand()).isEqualTo("-PtestCount=0");
   }
 
+  @Test
+  public void ignoreNonGeodeClasses() {
+    scanner.add("foo/src/test/java/org/example/Foo.java");
+    assertThat(scanner.buildGradleCommand()).isEqualTo("-PtestCount=0");
+  }
+
   private String getClassLocation(Class<?> clazz) {
     String codeSource = clazz.getProtectionDomain().getCodeSource().getLocation().getFile();
     String classFile = clazz.getName().replace(".", "/");
