package org.tmatesoft.svn.core.internal.wc2.ng; import org.tmatesoft.svn.core.SVNErrorCode; import org.tmatesoft.svn.core.SVNErrorMessage; import org.tmatesoft.svn.core.SVNException; import org.tmatesoft.svn.core.internal.wc.SVNErrorManager; import org.tmatesoft.svn.core.internal.wc17.SVNWCContext; import org.tmatesoft.svn.core.wc2.SvnResolve; import org.tmatesoft.svn.util.SVNLogType; import java.io.File; public class SvnNgResolve extends SvnNgOperationRunner<Void, SvnResolve> { @Override protected Void run(SVNWCContext context) throws SVNException { if (getOperation().getFirstTarget().isURL()) { SVNErrorMessage err = SVNErrorMessage.create(SVNErrorCode.ILLEGAL_TARGET, "'{0}' is not a local path", getOperation().getFirstTarget().getURL()); SVNErrorManager.error(err, SVNLogType.WC); } File localAbsPath = getFirstTarget(); File lockAbsPath = null; try { lockAbsPath = context.acquireWriteLockForResolve(localAbsPath); context.resolvedConflict(getFirstTarget(), getOperation().getDepth(), true, "", true, getOperation().getConflictChoice()); } finally { try { if (lockAbsPath != null) { context.releaseWriteLock(lockAbsPath); } } finally { sleepForTimestamp(); } } return null; } }