Open a 1 to 1 chat.
Send 10 Message.
Now invite the user, while the monitor is open, just scroll through the chat. You will see display issues (some colors vanished).
After putting in some log statements I got this:
INFO 02:50:34,582 [main] (ChatControl.java:338) Refreshing history
INFO 02:50:34,582 [main] (ChatControl.java:339) Clearing display
INFO 02:50:34,592 [main] (ChatDisplay.java:238) removing / disposing ChatLinePartnerChangeSeparator : 1709729861
INFO 02:50:34,592 [main] (ChatDisplay.java:238) removing / disposing ChatLine : 1046628499
INFO 02:50:34,592 [main] (ChatDisplay.java:238) removing / disposing ChatLinePartnerChangeSeparator : 1374279249
INFO 02:50:34,592 [main] (ChatDisplay.java:238) removing / disposing ChatLine : 1512927157
INFO 02:50:34,592 [main] (ChatDisplay.java:238) removing / disposing ChatLineSeparator : 1030248059
INFO 02:50:34,592 [main] (ChatDisplay.java:238) removing / disposing ChatLine : 1974933841
INFO 02:50:34,592 [main] (ChatDisplay.java:238) removing / disposing ChatLineSeparator : 1162592368
INFO 02:50:34,592 [main] (ChatDisplay.java:238) removing / disposing ChatLine : 1286011916
INFO 02:50:34,592 [main] (ChatDisplay.java:238) removing / disposing ChatLineSeparator : 1645940175
INFO 02:50:34,592 [main] (ChatDisplay.java:238) removing / disposing ChatLine : 76184065
INFO 02:50:34,592 [main] (ChatDisplay.java:238) removing / disposing ChatLineSeparator : 1897444280
INFO 02:50:34,592 [main] (ChatDisplay.java:238) removing / disposing ChatLine : 1537818639
INFO 02:50:34,602 [main] (ChatDisplay.java:238) removing / disposing ChatLineSeparator : 2020721881
INFO 02:50:34,603 [main] (ChatDisplay.java:238) removing / disposing ChatLine : 1458653327
INFO 02:50:34,604 [main] (ChatDisplay.java:238) removing / disposing ChatLineSeparator : 789972269
INFO 02:50:34,605 [main] (ChatDisplay.java:238) removing / disposing ChatLine : 2058788993
INFO 02:50:34,606 [main] (ChatDisplay.java:238) removing / disposing ChatLineSeparator : 1564460082
INFO 02:50:34,607 [main] (ChatDisplay.java:238) removing / disposing ChatLine : 1770721572
INFO 02:50:34,608 [main] (ChatDisplay.java:238) removing / disposing ChatLineSeparator : 301879280
INFO 02:50:34,608 [main] (ChatDisplay.java:238) removing / disposing ChatLine : 1669564516
INFO 02:50:34,609 [main] (ChatDisplay.java:238) removing / disposing ChatLineSeparator : 2030686263
INFO 02:50:34,610 [main] (ChatDisplay.java:238) removing / disposing ChatLine : 961497074
INFO 02:50:34,611 [main] (ChatDisplay.java:238) removing / disposing ChatLineSeparator : 1921705887
INFO 02:50:34,612 [main] (ChatDisplay.java:238) removing / disposing ChatLine : 1798907036
INFO 02:50:34,613 [main] (ChatDisplay.java:238) removing / disposing Composite : 202354961
INFO 02:50:34,617 [main] (ChatControl.java:360) clearing cache
INFO 02:50:34,617 [main] (ChatControl.java:406) Adding chatline with color: Color {192, 192, 192} : 1082693358
INFO 02:50:34,620 [main] (ChatDisplay.java:146) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLinePartnerChangeSeparator :1178146559 : color : 1082693358
INFO 02:50:34,627 [main] (ChatDisplay.java:160) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLine :1029379767 : color : 1082693358
INFO 02:50:34,634 [main] (ChatControl.java:406) Adding chatline with color: Color {214, 230, 236} : 1525803944
INFO 02:50:34,634 [main] (ChatDisplay.java:146) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLinePartnerChangeSeparator :2005490931 : color : 1525803944
INFO 02:50:34,644 [main] (ChatDisplay.java:160) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLine :440060692 : color : 1525803944
INFO 02:50:34,654 [main] (ChatControl.java:406) Adding chatline with color: Color {214, 230, 236} : 1525803944
INFO 02:50:34,654 [main] (ChatDisplay.java:136) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLineSeparator :2070237116 : color : 1525803944
INFO 02:50:34,654 [main] (ChatDisplay.java:160) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLine :366204967 : color : 1525803944
INFO 02:50:34,674 [main] (ChatControl.java:406) Adding chatline with color: Color {214, 230, 236} : 1525803944
INFO 02:50:34,674 [main] (ChatDisplay.java:136) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLineSeparator :170631557 : color : 1525803944
INFO 02:50:34,684 [main] (ChatDisplay.java:160) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLine :1278192134 : color : 1525803944
INFO 02:50:34,704 [main] (ChatControl.java:406) Adding chatline with color: Color {214, 230, 236} : 1525803944
INFO 02:50:34,704 [main] (ChatDisplay.java:136) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLineSeparator :511588769 : color : 1525803944
INFO 02:50:34,704 [main] (ChatDisplay.java:160) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLine :242977496 : color : 1525803944
INFO 02:50:34,724 [main] (ChatControl.java:406) Adding chatline with color: Color {214, 230, 236} : 1525803944
INFO 02:50:34,724 [main] (ChatDisplay.java:136) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLineSeparator :324747625 : color : 1525803944
INFO 02:50:34,724 [main] (ChatDisplay.java:160) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLine :638331777 : color : 1525803944
INFO 02:50:34,764 [main] (ChatControl.java:406) Adding chatline with color: Color {214, 230, 236} : 1525803944
INFO 02:50:34,764 [main] (ChatDisplay.java:136) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLineSeparator :58869185 : color : 1525803944
INFO 02:50:34,764 [main] (ChatDisplay.java:160) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLine :826117331 : color : 1525803944
INFO 02:50:34,784 [main] (ChatControl.java:406) Adding chatline with color: Color {214, 230, 236} : 1525803944
INFO 02:50:34,784 [main] (ChatDisplay.java:136) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLineSeparator :131331319 : color : 1525803944
INFO 02:50:34,794 [main] (ChatDisplay.java:160) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLine :462105374 : color : 1525803944
INFO 02:50:34,814 [main] (ChatControl.java:406) Adding chatline with color: Color {214, 230, 236} : 1525803944
INFO 02:50:34,814 [main] (ChatDisplay.java:136) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLineSeparator :20028142 : color : 1525803944
INFO 02:50:34,824 [main] (ChatDisplay.java:160) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLine :1072232679 : color : 1525803944
INFO 02:50:34,844 [main] (ChatControl.java:406) Adding chatline with color: Color {214, 230, 236} : 1525803944
INFO 02:50:34,844 [main] (ChatDisplay.java:136) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLineSeparator :1898029021 : color : 1525803944
INFO 02:50:34,858 [main] (ChatDisplay.java:160) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLine :545201496 : color : 1525803944
INFO 02:50:34,881 [main] (ChatControl.java:406) Adding chatline with color: Color {214, 230, 236} : 1525803944
INFO 02:50:34,883 [main] (ChatDisplay.java:136) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLineSeparator :99415864 : color : 1525803944
INFO 02:50:34,889 [main] (ChatDisplay.java:160) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLine :1840182662 : color : 1525803944
INFO 02:50:34,913 [main] (ChatControl.java:406) Adding chatline with color: Color {214, 230, 236} : 1525803944
INFO 02:50:34,917 [main] (ChatDisplay.java:136) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLineSeparator :468632315 : color : 1525803944
INFO 02:50:34,921 [main] (ChatDisplay.java:160) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLine :359728309 : color : 1525803944
Nov 24, 2012 2:50:34 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 131331319 : color : 1525803944 isDisposed ? false
Nov 24, 2012 2:50:34 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 20028142 : color : 1525803944 isDisposed ? false
Nov 24, 2012 2:50:34 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 1898029021 : color : 1525803944 isDisposed ? false
Nov 24, 2012 2:50:34 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 99415864 : color : 1525803944 isDisposed ? false
Nov 24, 2012 2:50:34 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 468632315 : color : 1525803944 isDisposed ? false
INFO 02:50:34,989 [main] (ChatControl.java:338) Refreshing history
INFO 02:50:34,990 [main] (ChatControl.java:339) Clearing display
// Why are only 3 widgets disposed ?
INFO 02:50:34,990 [main] (ChatDisplay.java:238) removing / disposing ChatLinePartnerChangeSeparator : 494945148
INFO 02:50:34,991 [main] (ChatDisplay.java:238) removing / disposing ChatLine : 43190322
INFO 02:50:34,991 [main] (ChatDisplay.java:238) removing / disposing Composite : 1799204449
INFO 02:50:34,992 [main] (ChatControl.java:360) clearing cache
INFO 02:50:34,993 [main] (ChatControl.java:406) Adding chatline with color: Color {214, 230, 236} : 819012098
INFO 02:50:34,998 [main] (ChatDisplay.java:146) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLinePartnerChangeSeparator :1789743169 : color : 819012098
INFO 02:50:35,002 [main] (ChatDisplay.java:160) added de.fu_berlin.inf.dpp.ui.widgets.chatControl.items.ChatLine :1706392602 : color : 819012098
....
Nov 24, 2012 2:50:37 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 170631557 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:37 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 511588769 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:37 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLinePartnerChangeSeparator : 1178146559 : color : 1082693358 isDisposed ? false
Nov 24, 2012 2:50:37 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLinePartnerChangeSeparator : 2005490931 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:37 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 2070237116 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:37 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 324747625 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:38 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 58869185 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:38 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 131331319 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:38 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 20028142 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:38 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 1898029021 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:38 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 99415864 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:38 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 468632315 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:38 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 170631557 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:38 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 511588769 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:38 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 324747625 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:38 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 58869185 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:38 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLinePartnerChangeSeparator : 1178146559 : color : 1082693358 isDisposed ? false
Nov 24, 2012 2:50:38 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLinePartnerChangeSeparator : 2005490931 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:38 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 2070237116 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:39 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 58869185 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:39 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 131331319 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:39 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 20028142 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:39 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 1898029021 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:39 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 99415864 : color : 1525803944 isDisposed ? true
Nov 24, 2012 2:50:39 AM de.fu_berlin.inf.nebula.widgets.RoundedComposite$1 paintControl
INFO: repaint on ChatLineSeparator : 468632315 : color : 1525803944 isDisposed ? true
I am sorry that I had to use two loggers.
Just as a hint: the isDisposed message applys to the (background)color, not the widget.
The numbers used are generated with System.identityHashCode which return the same as a malloc() call would did in C. A unique pointer to that object.
OS: Win7 (x64), Eclipse Version. 3.7.X, Java Vendor: Oracle, Java 7
I think I got it, the color cache is static, as soon as the MUC is repaintet (I think that is the 3 disposed widgets), it accidently disposed the "global" colors. If I now scroll through another chat tab, SWT tries to repaint the chat content with a disposed color.
48b6bd4b4b65187b08c0b94c40dd1b9cd8b19d87