Christian Dietrich
unread,Jul 13, 2017, 11:44:10 AM7/13/17Sign in to reply to author
Sign in to forward
You do not have permission to delete messages in this group
Sign in to report message
Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message
to Subclipse
We have a Builder run in autobuild that creates new files or deletes inside a folder that is under svn version control
org.tigris.subversion.subclipse.core.status.SynchronizerSyncInfoCache.setCachedSyncBytes(IResource, byte[])
executes a workspace modify operation
org.tigris.subversion.subclipse.core.status.SynchronizerSyncInfoCache.SyncInfoSynchronizedAccessor.internalSetCachedSyncBytes(IResource, byte[])
which leads to the auto build job beeing interrupted
AutoBuildJob.interrupt() line: 188
BuildManager.interrupt() line: 915
Workspace.prepareOperation(ISchedulingRule, IProgressMonitor) line: 2186
Synchronizer.setSyncInfo(QualifiedName, IResource, byte[]) line: 235
SynchronizerSyncInfoCache$SyncInfoSynchronizedAccessor.internalSetCachedSyncBytes(IResource, byte[]) line: 226
SynchronizerSyncInfoCache.setCachedSyncBytes(IResource, byte[]) line: 146
SynchronizerSyncInfoCache.addStatus(IResource, LocalResourceStatus) line: 73
StatusCacheManager.updateCache(IResource, ISVNStatus) line: 122
StatusCacheManager.updateCache(IResource, ISVNStatus[]) line: 97
StatusCacheManager.refreshStatus(IResource, boolean) line: 271
FileModificationManager.refreshStatusInfinite(Collection<IResource>) line: 218
FileModificationManager.refreshStatus(IResource[]) line: 257
FileModificationManager.access$2(FileModificationManager, IResource[]) line: 232
FileModificationManager$2.run() line: 190
JobUtility$1$1.run(IProgressMonitor) line: 22
Workspace.run(ICoreRunnable, ISchedulingRule, int, IProgressMonitor) line: 2240
Workspace.run(IWorkspaceRunnable, ISchedulingRule, int, IProgressMonitor) line: 2267
JobUtility$1.run(IProgressMonitor) line: 20
Worker.run() line: 56
since our builder is a nice cititzen it respects this interruped
org.eclipse.core.resources.IncrementalProjectBuilder.isInterrupted()
and interrupts the build, stores the state and is later called again.
if it is interruped before building a file completely
(builder produces more than one file)
the same file is built over and over again.
imho subclipse should do nothing as long as build is still running and
thus the code should do something like
canModifyWorkspace = canModifyWorkspace && !org.eclipse.core.resources.ResourcesPlugin.getWorkspace().isAutoBuilding();
Thanks
Christian