# Netbeans unterstützung für "Rule Switch" - Bug?



## SuperPCFan (26. Feb 2021)

Ich habe bei einem getesteten funktionsfähigen (jaja, Software ist nie Bugfrei ) Java Projekt in der Netbeans IDE heute festgestellt, das die Projektversion auf JDK8 eingestellt war. Ich habe sie testweise auf JDK14 gestellt und wodurch mich die IDE darauf hingewiesen hat "switch" doch bitte auf "rule switch" umzustellen.

Nur als ich das per Code Unterstützung von der IDE habe umsetzen lassen, ist ein merkwürdiger Effekt aufgetreten.
In manchen Switch Passagen hat mich die IDE jetzt darüber informiert, dass plötzlich manche Zuweisung keine nachfolgende Anwendung finden. Vor der Umstellung auf "Rule switch" hat die IDE das für die gleiche Passage nicht bemängelt......und die Passage hat auch genauso funktioniert wie sie sollte. Also die neuerdings unbenutzten Werte wurden korrekt benutzt.

Natürlich kann ich die Passagen umstellen sodass die IDE nicht meckert. Aber ist das ein bekannter Bug? Ist die "Rule Switch" Funktion noch so neu das solche Codeprüfungsbugs noch vorkommen? Ich hatte gehofft die Projekt Version auf JKD14 umstellen zu können ohne jedes einzelne Switch neu debuggen zu müssen. 

[CODE lang="java" title="Nur die Zeile 11 und 12 werden als 'Zuweisung unbenutzt' bemängelt" highlight="11,12"]
iWidth = tempIcon.getIconWidth();
iHeight = tempIcon.getIconHeight();
switch(eMode) {
    case widthFixed -> {
        fScaleFactor = (float)iFixedWidth / (float)iWidth;
        iWidth = iFixedWidth;
        iHeight = Math.round(iHeight * fScaleFactor);
    }
    case heightFixed -> {
        fScaleFactor = (float)iFixedHeight / (float)iHeight;
        iWidth = Math.round(iWidth * fScaleFactor);
        iHeight = iFixedHeight;
    }
    case bothFixed -> {
        iWidth = iFixedWidth;
        iHeight = iFixedHeight;
    }
    default -> {
    }
}
tempIcon = new ImageIcon(tempIcon.getImage().getScaledInstance(iWidth, iHeight, Image.SCALE_SMOOTH));
[/CODE]


----------



## mrBrown (26. Feb 2021)

SuperPCFan hat gesagt.:


> Aber ist das ein bekannter Bug? Ist die "Rule Switch" Funktion noch so neu das solche Codeprüfungsbugs noch vorkommen?


Sieht nach nem Bug in Netbeans aus, nutzt du die neuste Version?




SuperPCFan hat gesagt.:


> Ich hatte gehofft die Projekt Version auf JKD14 umstellen zu können ohne jedes einzelne Switch neu debuggen zu müssen.


Naja, du machst ja mehr als nur die Version umstellen, und jedes Refactoring sollte von Tests abgedeckt sein


----------



## SuperPCFan (26. Feb 2021)

Ja, ist die aktuelle Version. Der IDE-Updater sagt es gibt nichts neueres als Apache NetBeans IDE 12.0

Die Software ist noch...oder wieder...in der Testphase. Ich hatte nur gehofft nicht _*jedes*_ Switch einzeln neu überprüfen zu müssen. 
Geschätzt werden etwa alleine 20% der "Switch" Passagen nach der Umstellung von der IDE mit diesem Fehler bemängelt der keiner zu sein scheint.


----------



## mrBrown (26. Feb 2021)

Naja, änder den Code einfach nicht, wenn du den nicht überprüfen willst?

Oder seh es als sehr deutlichen Hinweis, dass du automatisierte Tests bräuchtest


----------



## SuperPCFan (26. Feb 2021)

Das Problem ist, das die IDE auch meckert wenn ich den Code nicht ändere 
weil die IDE findet das "Rule Switch" viel besser sind als die alten "Switch".
Egal was ich mache, die IDE meckert....Autotest wären echt toll....


----------



## LimDul (26. Feb 2021)

Man kann doch mit Sicherheit die Warnings deaktivieren (ist auch nicht ideal, aber besser als zu viele falsche)


----------



## SuperPCFan (26. Feb 2021)

Hatte ich auch schon dran gedacht.
Ist wohl tatsächlich der beste Weg. Danke
Ich werde den Bug dann mal melden....oder auch nicht...anscheinend funktioniert der "Report-Issue-Knopf" nur mit Microsoft Edge


----------



## SuperPCFan (27. Feb 2021)

Die IDE wird mir gerade immer unsympathischer. 

Ich habe nochmal manuell die Version überprüft. Es gibt inwischen 12.2.....das scheint der IDE internen Updateprüfung aber herzlich egal zu sein.

Nachdem ich auf Version 12.2 upgedated habe, bemängelt die IDE jetzt Fehler in ihrem selbsterstellten (und für mich gesperrten) Code Passagen....

Dafür ist aber der Rule Switch Bug behoben.


----------



## kneitzel (27. Feb 2021)

SuperPCFan hat gesagt.:


> Ich habe nochmal manuell die Version überprüft. Es gibt inwischen 12.2.....das scheint der IDE internen Updateprüfung aber herzlich egal zu sein.


Das ist aber einfach zu erklären. 12 war die LTS Version. Die folgt nicht jedem Update. 12.2 ist die non LTS Version.

Somit ist da aus meiner Sicht erst einmal der IDE nichts vorzuwerfen.

Was die anderen Probleme angeht; Denen müsste man im Detail nachgehen. Kann sein, dass da in der IDE etwas schief läuft, aber ich würde mich auch nicht wundern, wenn da im Projekt einfach nur etwas falsch wäre. Aber von Netbeans bin ich auch kein Fan und daher kann ich da im Detail auch nichts zu sagen.


----------

