diff options
-rw-r--r-- | bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/DirtyRegionProcessor.java | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/DirtyRegionProcessor.java b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/DirtyRegionProcessor.java index 2a1cf02051..7d88695bc7 100644 --- a/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/DirtyRegionProcessor.java +++ b/bundles/org.eclipse.wst.sse.ui/src/org/eclipse/wst/sse/ui/internal/reconcile/DirtyRegionProcessor.java @@ -529,6 +529,9 @@ public class DirtyRegionProcessor implements IReconciler, IReconcilerExtension, */ private synchronized DirtyRegion[] getRequests() { synchronized (fDirtyRegionQueue) { + if (0 == fDirtyRegionQueue.size()) { + return null; + } DirtyRegion[] toRefresh = (DirtyRegion[]) fDirtyRegionQueue.toArray(new DirtyRegion[fDirtyRegionQueue.size()]); flushDirtyRegionQueue(); return toRefresh; @@ -686,15 +689,15 @@ public class DirtyRegionProcessor implements IReconciler, IReconcilerExtension, boolean processed = false; try { DirtyRegion[] toRefresh = getRequests(); - if (toRefresh.length > 0) { + if (toRefresh != null && toRefresh.length > 0) { processed = true; beginProcessing(); - } - - for (int i = 0; i < toRefresh.length && fDocument != null; i++) { - if (fIsCanceled) - return; - process(toRefresh[i]); + + for (int i = 0; i < toRefresh.length && fDocument != null; i++) { + if (fIsCanceled) + return; + process(toRefresh[i]); + } } } finally { |