netbeans icon indicating copy to clipboard operation
netbeans copied to clipboard

Cannot invoke "org.netbeans.modules.gsf.testrunner.api.Testcase.getTrouble()" because "testcase" is null

Open terry-norbraten opened this issue 8 months ago • 2 comments

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)

messages.log

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

terry-norbraten avatar Apr 22 '25 18:04 terry-norbraten

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 {

}

terry-norbraten avatar Apr 24 '25 00:04 terry-norbraten

Fix is easy enough, test testcase for nullness before use. Will create a PR for this one.

homberghp avatar Jun 23 '25 13:06 homberghp

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.

matthiasblaesing avatar Jul 25 '25 18:07 matthiasblaesing