redhat-developer / redhat-developer/vscode-java

Editor erroneously reports warning in conditional operator

Offen
#821 2 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug diagnostics upstream
Vorherrschende Sprache
TypeScript
Sterne
2.3k
Forks
546
Ø Merge
20 Std. 1 Min.
Gemergte PRs (30 T.)
11

Beschreibung

Erroneous warnings are reported in the editor in conditional operators.

Environment
  • Operating System: Windows 10 Pro
  • JDK version: OpenJDK 11.0.1
  • Visual Studio Code version: 1.30.1
  • Java extension version: 0.40.0
Steps To Reproduce

Write code like the following:

SpeedController motor;
if (RobotMap.isCompetitionRobot)
{
	motor = new WPI_TalonSRX(RobotMap.liftMotorCanDeviceId);
}
else
{
	motor = new Spark(RobotMap.centerLegMotorPwmChannel);
}
		
motor = RobotMap.isCompetitionRobot
	? new WPI_TalonSRX(RobotMap.liftMotorCanDeviceId)
	: new Spark(RobotMap.centerLegMotorPwmChannel);

where the class Spark extends a class that implements AutoCloseable.

Current Result

No warnings are reported in the if statement. However, the warning:

Resource leak: '<unassigned Closeable value>' is never closed

is reported for the code:

new Spark(RobotMap.centerLegMotorPwmChannel)

in the conditional operator.

Expected Result

No warnings should be reported at all.

Additional Informations

None.

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Beginne damit, die Warnung mit dem Beispiel für den bedingten Operator aus dem Issue zu reproduzieren, wobei du nach Möglichkeit die aufgeführten Versionen von Windows, JDK, VS Code und Java extension verwendest. Verfolge die Analyse der Java extension zu Ressourcenlecks für bedingte Ausdrücke. Als erledigt gilt die Aufgabe, wenn der bedingte Ausdruck keine fehlerhafte Warnung erzeugt, während das Verhalten der bestehenden if-Anweisung unverändert bleibt.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
java
Bereich
tooling
Issue-Typ
Bug
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
45/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.