Cannot invoke "org.netbeans.modules.gsf.testrunner.api.Testcase.getTrouble()" because "testcase" is null
Apache NetBeans version
Apache NetBeans 25
What happened
When running a unit test on a freeform project the subject line error occurs. Out put from IDE.log:
java.lang.NullPointerException: Cannot invoke "org.netbeans.modules.gsf.testrunner.api.Testcase.getTrouble()" because "testcase" is null
at org.netbeans.modules.junit.ant.JUnitOutputReader.addStackTraceLine(JUnitOutputReader.java:949)
at org.netbeans.modules.junit.ant.JUnitOutputReader.messageLogged(JUnitOutputReader.java:335)
at org.netbeans.modules.junit.ant.JUnitAntLogger.messageLogged(JUnitAntLogger.java:105)
[catch] at org.apache.tools.ant.module.bridge.impl.NbBuildLogger.messageLogged(NbBuildLogger.java:597)
at org.apache.tools.ant.Project.fireMessageLoggedEvent(Project.java:2265)
at org.apache.tools.ant.Project.fireMessageLogged(Project.java:2364)
at org.apache.tools.ant.Project.log(Project.java:481)
at org.apache.tools.ant.Task.log(Task.java:294)
at org.apache.tools.ant.taskdefs.LogOutputStream.processLine(LogOutputStream.java:100)
at org.apache.tools.ant.taskdefs.optional.junit.JUnitTask$JUnitLogOutputStream.processLine(JUnitTask.java:2277)
at org.apache.tools.ant.taskdefs.LogOutputStream.processLine(LogOutputStream.java:90)
at org.apache.tools.ant.util.LineOrientedOutputStream.processLine(LineOrientedOutputStream.java:109)
at org.apache.tools.ant.util.LineOrientedOutputStream.processBuffer(LineOrientedOutputStream.java:81)
at org.apache.tools.ant.taskdefs.LogOutputStream.processBuffer(LogOutputStream.java:77)
at org.apache.tools.ant.util.LineOrientedOutputStream.write(LineOrientedOutputStream.java:58)
at org.apache.tools.ant.util.LineOrientedOutputStream.write(LineOrientedOutputStream.java:150)
at org.apache.tools.ant.taskdefs.StreamPumper.run(StreamPumper.java:141)
at java.base/java.lang.Thread.run(Thread.java:1575)
Language / Project Type / NetBeans Component
Java Free-Form Project
How to reproduce
Not quite sure, but simply running a unit test w/ (Unit 4.13.2) and (Hamcrest 1.3)
Did this work correctly in an earlier version?
No / Don't know
Operating System
macOS Sequoia: 15.3.2 (24D81)
JDK
openjdk version "23.0.2" 2025-01-21 OpenJDK Runtime Environment (build 23.0.2+7-58) OpenJDK 64-Bit Server VM (build 23.0.2+7-58, mixed mode, sharing)
Apache NetBeans packaging
Apache NetBeans provided installer
Anything else
I have noticed this in the past few NetBeans releases, 24, 23, etc. Not sure how far back I remember.
Are you willing to submit a pull request?
No
I should add that a normal Test class does not produce this error, but a Test Suite will:
package com.articulate.sigma.trans;
import com.articulate.sigma.*;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
//This software is released under the GNU Public License
//<http://www.gnu.org/copyleft/gpl.html>.
// Copyright 2019 Infosys
// [email protected]
@RunWith(Suite.class)
@Suite.SuiteClasses({
SUMOtoTFAKBTest.class,
SUMOtoTFAformTest.class,
THFtest.class,
TPTP2SUMOTest.class
})
public class IntegrationTransTestSuite extends IntegrationTestBase {
}
Fix is easy enough, test testcase for nullness before use. Will create a PR for this one.
This needs a minimal reproducer as I just added a "TestSuite" to a freeform java ant project and that suite is correctly executed. @mbien already commented such on the PR @homberghp kindly provided. The fix in the PR might or might not be appropriate, but just catching a NullPointer must first answer why we get to that point.