This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

View | Details | Raw Unified | Return to bug 234183
Collapse All | Expand All

(-)a/editor/src/org/netbeans/modules/editor/NbEditorUI.java (-5 / +29 lines)
Lines 54-59 Link Here
54
import java.beans.PropertyChangeEvent;
54
import java.beans.PropertyChangeEvent;
55
import java.beans.PropertyChangeListener;
55
import java.beans.PropertyChangeListener;
56
import java.util.Iterator;
56
import java.util.Iterator;
57
import java.util.LinkedHashMap;
58
import java.util.LinkedHashSet;
57
import java.util.Map;
59
import java.util.Map;
58
import java.util.prefs.Preferences;
60
import java.util.prefs.Preferences;
59
import javax.swing.Action;
61
import javax.swing.Action;
Lines 118-123 Link Here
118
    }
120
    }
119
121
120
    private static final RequestProcessor WORKER = new RequestProcessor(NbEditorUI.class.getName(), 1, false, false);
122
    private static final RequestProcessor WORKER = new RequestProcessor(NbEditorUI.class.getName(), 1, false, false);
123
    private static final LinkedHashSet<FileObject> objectsToRefresh = new LinkedHashSet<>();
124
    private static final Object lock = new Object();
125
    private static final RequestProcessor.Task TASK = WORKER.create(new Runnable() {
126
        @Override
127
        public void run() {
128
            FileObject fo;
129
            do {
130
                synchronized (lock) {
131
                    // let's be fair - get 1-st object
132
                    Iterator<FileObject> iterator = objectsToRefresh.iterator();
133
                    if (iterator.hasNext()) {
134
                        fo = iterator.next();
135
                        objectsToRefresh.remove(fo);
136
                    } else {
137
                        fo = null;
138
                    }
139
                }
140
                if (fo != null) {
141
                    fo.refresh();
142
                }
143
            } while (fo != null);
144
        }
145
    });
121
    
146
    
122
    public NbEditorUI() {
147
    public NbEditorUI() {
123
        focusL = new FocusAdapter() {
148
        focusL = new FocusAdapter() {
Lines 130-140 Link Here
130
                        final FileObject fo = dob.getPrimaryFile();
155
                        final FileObject fo = dob.getPrimaryFile();
131
                        if (fo != null) {
156
                        if (fo != null) {
132
                            // Fixed #48151 - posting the refresh outside of AWT thread
157
                            // Fixed #48151 - posting the refresh outside of AWT thread
133
                            WORKER.post(new Runnable() {
158
                            synchronized (lock) {
134
                                public void run() {
159
                                objectsToRefresh.add(fo);
135
                                    fo.refresh();
160
                            }
136
                                }
161
                            TASK.schedule(0);
137
                            });
138
                        }
162
                        }
139
                    }
163
                    }
140
                }
164
                }

Return to bug 234183