Bug in Ermittlung der Java Version / Tray weg

Fehler in TV-Browser
Antworten
Anton_D

Bug in Ermittlung der Java Version / Tray weg

Beitrag von Anton_D »

Nachdem nach dem erneuten Update von JRE (diesmal Java 19) Tray mit Menü wieder verschwand, habe ich ein bisschen nach der Ursachen gesucht und gefunden. Mit der neuen JRE sieht man in dem Log folgendes Eintrag:

Tray not supported: At least Java 6 is needed to get tray support.

Im Quellcode findet man diese Zeile in der Klasse Java6Tray, Methode init. Als Erstes wird mit

if(JavaVersion.getVersion() >= JavaVersion.VERSION_1_6) {


geprüft, ob wir mindestens Java 6 haben, sonst funktioniert das ganze nicht, da uns die Klassen fehlen.

Wenn man dann die Methode JavaVersion.getVersion() anschaut, findet man schnell die Fehler. In der Zeile 64 wird geprüft, ob man eine Versionsnummer von der Länge 1 hat,

if(version.length() == 1) {

für den ersten Release der Version. Also kein späteres Punkt-Release. Falls ja, dann wird ein ".0" hinten hinzugefügt, damit der Rest des Algorithmus funktioniert. Aber das wird offensichtlich spätestens seit Version 10 nicht mehr so gehen.

Ersetzt man die Zeile durch

if(!version.contains(".")) {

Dann funktioniert das alles auch für die mehrstellige Versionsnummer.

Da ihr sowieso Commons Lang mitbringt, kann man auch das benutzen, muss einfach die Stellen anpassen, die aktuell noch interne Klasse benutzen. Der Quellcode für Tray-Überprüfung dann:

import org.apache.commons.lang3.SystemUtils;
import org.apache.commons.lang3.JavaVersion;

public class MyClass {

public static void main(String args[]) {

//System.out.println(SystemUtils.JAVA_VERSION);
System.out.println(SystemUtils.isJavaVersionAtLeast(JavaVersion.JAVA_1_6));
}
}
ds10
Site Admin
Beiträge: 18927
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: Bug in Ermittlung der Java Version / Tray weg

Beitrag von ds10 »

Danke für die Analyse und den Bugfix.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Benutzeravatar
Siggi
Moderator
Beiträge: 2246
Registriert: 31 Dez 2003, 12:21
Wohnort: Doberlug - Kirchhain

Re: Bug in Ermittlung der Java Version / Tray weg

Beitrag von Siggi »

Ist denn der TV-Browser für Java >11 verwendbar?

Ich dachte, da gäbe es größere Probleme und ds10 müsse das generell erst anpassen und eine neue Version veröffentlichen?
mfg Siggi

PS: Wer Fehler findet, darf Sie behalten!!! :-)
ds10
Site Admin
Beiträge: 18927
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: Bug in Ermittlung der Java Version / Tray weg

Beitrag von ds10 »

Ganz grundsätzlich sollte es laufen, man kann halt nur nicht garantieren, dass es nicht irgendwo doch Inkompatibilitäten gibt.
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Benutzeravatar
Siggi
Moderator
Beiträge: 2246
Registriert: 31 Dez 2003, 12:21
Wohnort: Doberlug - Kirchhain

Re: Bug in Ermittlung der Java Version / Tray weg

Beitrag von Siggi »

Okay,
aber ich warte mal noch, bis du offiziell eine neue Version von Java freigibst.
Noch kommen ja Updates für Java 11.
mfg Siggi

PS: Wer Fehler findet, darf Sie behalten!!! :-)
Anton_D

Re: Bug in Ermittlung der Java Version / Tray weg

Beitrag von Anton_D »

Ich habe kurz nachgeschaut: Die JavaVersion Klasse wird nur zweimal benutzt. Daneben gibt es auch die OperatingSystem Klasse, die wird 36 Mal benutzt. Erste Klasse kann man komplett durch die Commons Lang ersetzten. Bei der zweiten Klasse kann man Methoden ersetzen, es gibt auch zwei Methoden, die nicht in Commons Lang vorhanden sind und dann noch zwei, die nicht benutzt werden.

Soll man hier ein bisschen ersetzten / Refactoring betreiben? Wie wäre dann die organisatorische Vorgehensweise? 
ds10
Site Admin
Beiträge: 18927
Registriert: 23 Jun 2005, 12:36
Kontaktdaten:

Re: Bug in Ermittlung der Java Version / Tray weg

Beitrag von ds10 »

Die Klassen befinden sich unter util, die kann man nicht einfach so ersetzen, da Klassen innerhalb dieses Pakets als dauerhaft verfügbar von Plugins erwartet werden. Wenn man dort etwas ersetzen wollte, dann müsste das über mehrere Versionen und Jahre als deprecated gekennzeichnet werden.

Warum sich also die Arbeit machen, wenn es mit dem einfachen Bugfix funktioniert?
Siehe: https://wiki.tvbrowser.org/index.php/%C ... assen_muss
"First they ignore you, then they ridicule you, then they fight you, then you win." - Mahatma Gandhi
Unterstütze die Weiterentwicklung von TV-Browser
Benutzeravatar
Siggi
Moderator
Beiträge: 2246
Registriert: 31 Dez 2003, 12:21
Wohnort: Doberlug - Kirchhain

Re: Bug in Ermittlung der Java Version / Tray weg

Beitrag von Siggi »

Ich habe heute mal auf die JRE 17 64bit unter Windows aktualisiert (jdk-17.0.5+8). https://adoptium.net/de/temurin/releases/
Läuft bisher alles ohne Fehler. Gibt es was zu testen, wo du dir nicht sicher bist, dass es unter Java 17 läuft?

Im Log liegt folgender Fehler (das aber auch schon mit der Java 11):

Code: Alles auswählen

23.12.2022 14:49:57 tvbrowser.core.settings.PluginSettings:
	INFORMATION: Storing plugin settings for EPGpaid-Daten...
Could not find fetcher.properties on classpath
Des Weiteren einige Punkte zur Übersetzung:

Code: Alles auswählen

23.12.2022 14:53:58 util.i18n.Localizer:
	WARNUNG: Localization of message 'TextComponentPopupEventQueue.copy' should be replaced by Localizer.getLocalization(Localizer.I18N_COPY)

Edit 27.12.2022

Code: Alles auswählen

27.12.2022 16:45:25 util.i18n.Localizer:
	WARNUNG: Localization of message 'ReminderPlugin.pauseTimerMinutes' should be replaced by Localizer.getLocalization(Localizer.I18N_MINUTES)
mfg Siggi

PS: Wer Fehler findet, darf Sie behalten!!! :-)
Benutzeravatar
Siggi
Moderator
Beiträge: 2246
Registriert: 31 Dez 2003, 12:21
Wohnort: Doberlug - Kirchhain

Re: Bug in Ermittlung der Java Version / Tray weg

Beitrag von Siggi »

Ich habe gestern mal auf die JRE 17 64bit unter Windows aktualisiert (jdk-17.0.6+10). https://adoptium.net/de/temurin/releases/
Läuft bisher alles ohne Fehler. Konnte bisher keine Fehler finden.
mfg Siggi

PS: Wer Fehler findet, darf Sie behalten!!! :-)
Antworten