On MacOS Catalina using Java 14 I get the following exception
java.lang.UnsupportedOperationException: The ICON_BADGE_NUMBER feature is not supported on the current platform!
at java.desktop/java.awt.Taskbar.checkFeatureSupport(Taskbar.java:175)
at java.desktop/java.awt.Taskbar.setIconBadge(Taskbar.java:373)
at com.jthink.songkong.analyse.analyser.Counters.resetCounters(Counters.java:407)
at com.jthink.songkong.action.SongKongPrimaryTaskAction.init(SongKongPrimaryTaskAction.java:24)
at com.jthink.songkong.action.FixFilesAction.actionPerformed(FixFilesAction.java:47)
at java.desktop/javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1967)
at java.desktop/javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2308)
at java.desktop/javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:405)
when I try to call setIconBadge()
This works okay using Java 11 so my question is why does it no longer with Java 14, is this on purpose or is it a bug ?
The code for java.awt.Taskbar has
public void setIconBadge(final String badge) {
checkEventsProcessingPermission();
checkFeatureSupport(Feature.ICON_BADGE_NUMBER);
peer.setIconBadge(badge);
}
Since I am passing it a String should it not be checking for Feature.ICON_BADGE_TEXT anyway ?
This code
System.out.println("1:"+Taskbar.getTaskbar().isSupported(Taskbar.Feature.ICON_BADGE_NUMBER));
System.out.println("2:"+Taskbar.getTaskbar().isSupported(Taskbar.Feature.ICON_BADGE_TEXT));
System.out.println("3:"+Taskbar.getTaskbar().isSupported(Taskbar.Feature.ICON_BADGE_IMAGE_WINDOW));
System.out.println("4:"+Taskbar.getTaskbar().isSupported(Taskbar.Feature.ICON_IMAGE));
System.out.println("5:"+Taskbar.getTaskbar().isSupported(Taskbar.Feature.PROGRESS_VALUE));
System.out.println("6:"+Taskbar.getTaskbar().isSupported(Taskbar.Feature.PROGRESS_VALUE_WINDOW));
System.out.println("7:"+Taskbar.getTaskbar().isSupported(Taskbar.Feature.PROGRESS_STATE_WINDOW));
System.out.println("8:"+Taskbar.getTaskbar().isSupported(Taskbar.Feature.USER_ATTENTION));
System.out.println("9:"+Taskbar.getTaskbar().isSupported(Taskbar.Feature.USER_ATTENTION_WINDOW));
when run on MacOS Java 11 gives:
1:true
2:true
3:false
4:true
5:true
6:false
7:false
8:true
9:false
when run on MacOS Java 14 gives:
1:false
2:false
3:false
4:true
5:true
6:false
7:false
8:true
9:false