diff --git a/jdk/src/java.desktop/windows/native/libawt/windows/awt_TrayIcon.cpp b/jdk/src/java.desktop/windows/native/libawt/windows/awt_TrayIcon.cpp index 56280a583ac..b7ec441d556 100644 --- a/jdk/src/java.desktop/windows/native/libawt/windows/awt_TrayIcon.cpp +++ b/jdk/src/java.desktop/windows/native/libawt/windows/awt_TrayIcon.cpp @@ -93,6 +93,12 @@ AwtTrayIcon::~AwtTrayIcon() { void AwtTrayIcon::Dispose() { SendTrayMessage(NIM_DELETE); + + // Destroy the icon to avoid leak of GDI objects + if (m_nid.hIcon != NULL) { + ::DestroyIcon(m_nid.hIcon); + } + UnlinkObjects(); if (--sm_instCount == 0) {