From 2744fe7246528e8acfac964a83726c422e6a5863 Mon Sep 17 00:00:00 2001 From: Silenio Quarti Date: Thu, 14 Mar 2013 10:51:05 -0400 Subject: Bug 403346 - TreeViewers throw NPE's on collapsed multi-selections --- .../Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java index e3fd80a933..f40580da9b 100644 --- a/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java +++ b/bundles/org.eclipse.swt/Eclipse SWT/win32/org/eclipse/swt/widgets/Tree.java @@ -3486,7 +3486,12 @@ public TreeItem [] getSelection () { int itemCount = (int)/*64*/OS.SendMessage (handle, OS.TVM_GETCOUNT, 0, 0); boolean bigSelection = result.length > itemCount / 2; if (count != getSelection (hItem, tvItem, result, 0, count, bigSelection, false)) { - getSelection (hItem, tvItem, result, 0, count, bigSelection, true); + count = getSelection (hItem, tvItem, result, 0, count, bigSelection, true); + } + if (count != result.length) { + TreeItem[] newResult = new TreeItem[count]; + System.arraycopy (result, 0, newResult, 0, count); + result = newResult; } OS.SetWindowLongPtr (handle, OS.GWLP_WNDPROC, oldProc); return result; -- cgit