[rfc][icedtea-web] remove rare deadlock in logging console

Jiri Vanek jvanek at redhat.com
Thu Mar 13 08:21:24 UTC 2014

I think this synchronisation is redundant.
If not, then maybe  invokeLater should become invokeAndWait? But it is locking too...
Also, the importList is synchronized in only model-touching block[1].

So this really should be ok to go.

Only case where I have seen the deadlock occur is in elluminate with CONSOLE ON and VISIBLE, It 
appeared in aprox 1/3 of cases.
It did not appeared after the fix. Anyway - anybody who is running head - may you try to run apps 
(and elluminat wit/without fix) with cosnole on and visibele for a while?


[0]here is whole block:

      * when various threads update (and it can be)underlying jeditorpane
      * simultanouskly, then it can lead to unpredictible issues synchroisation
      * is doen in invoe later
     private AtomicBoolean done = new AtomicBoolean(true);

     private synchronized void updatePane(final boolean reset) {
         if (!done.get()) {
         java.awt.EventQueue.invokeLater(new Runnable() {

             public void run() {
                 try {
                 } catch (Exception ex) {
                 } finally {

     private void refreshPaneBody(final boolean reset) throws BadLocationException, IOException {
         if (reset) {
         } else {

  String importList(boolean mark, int start, int sortByLocal) {
         int added = start;
         StringBuilder sb = new StringBuilder();
         if (mark) {
             sb.append("<div style='");
             if (!wordWrap) {

         List<MessageWithHeader> sortedList;
         synchronized (dataProvider.getData()) {
             if (start == 0) {
                 sortedList = preSort(dataProvider.getData(), sortByLocal);
             } else {
                 sortedList = 
dataProvider.getData().size())), sortByLocal);
-------------- next part --------------
A non-text attachment was scrubbed...
Name: removePotentialDeadlock.patch
Type: text/x-patch
Size: 628 bytes
Desc: not available
URL: <http://mail.openjdk.java.net/pipermail/distro-pkg-dev/attachments/20140313/908f4aba/removePotentialDeadlock.patch>

More information about the distro-pkg-dev mailing list