From 7a40b8d5f7c69da28c5ebbbddfebdc84f08adf65 Mon Sep 17 00:00:00 2001 From: Dmitry Markov Date: Fri, 13 May 2016 12:44:53 +0300 Subject: [PATCH] 8155001: SystemTray.remove() leaks GDI Objects in Windows Reviewed-by: serb, alexp --- .../windows/native/libawt/windows/awt_TrayIcon.cpp | 6 ++++++ 1 file changed, 6 insertions(+) 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) {