This is really annoying to me and I really don't like the idea of providing an application that looks half-assed. So, I actually got around this problem creating a small native library that implements the tray icon using gtk.
So, if you end up having tray icon problems, you may use my little artifact. The source code is here. I also deployed in the central, you can use it putting the following dependency:
<groupId>com.github.taksan</groupId>
<artifactId>native-tray-adapter</artifactId>
<version>1.1</version>
The usage is very simple:
SystemTrayAdapter trayAdapter = SystemTrayProvider.getSystemTray();
URL imageUrl = getClass().getResource("myImage.svg");
String tooltip = "I'm transparent under linux!";
PopupMenu popup = produceMyPopupMenu();
TrayIconAdapter trayIconAdapter = trayAdapter.createAndAddTrayIcon(
imageUrl,
tooltip,
popup);
Enjoy!