From: Robin Rosenberg Date: Wed, 27 Aug 2008 21:50:56 GMT Subject: Re: [egit PATCH] avoiding output in the error log Message-ID: <200808272350.56819.robin.rosenberg.lists@dewire.com> In-Reply-To: <20080827203343.GN26523@spearce.org> onsdagen den 27 augusti 2008 22.33.43 skrev Shawn O. Pearce: > Robin Rosenberg wrote: > > > @@ -197,8 +199,10 @@ synchronized (resources) { > > > } // End ResCL > > > > > > void clearDecorationState(IResource r) throws CoreException { > > > - r.setSessionProperty(GITFOLDERDIRTYSTATEPROPERTY, null); > > > - fireLabelProviderChanged(new LabelProviderChangedEvent(this, r)); > > > + if (r.exists()) { > > > + r.setSessionProperty(GITFOLDERDIRTYSTATEPROPERTY, null); > > > + fireLabelProviderChanged(new LabelProviderChangedEvent(this, r)); > > > + } > > > > Shawn, you removed the test from the code in 4a230ea1. Perhaps you could care to > > comment on this patch to restore the test, though slightly different. > > > > if (r.isAccessible()) > > r.setSessionProperty(GITFOLDERDIRTYSTATEPROPERTY, null); > > This may be a patch queue reordering bug. > > If you look at 4a230ea1 I moved the isAccessible test higher up, > such that we shouldn't enter into clearDecorationState unless the > resource is accessible. But there may currently be two code paths > that enter this method, and a patch I did not yet submit had removed > the other code path. Good. So then the question is whether we should use isAccessible() or exists()? Normally this makes no difference, but for a Project (at least) there is a difference. I project that exits is not accessible when closed. -- robin