 					callback null, doc, !existingDoc?
 
 	# FIXME: this method needs to be changed, currently it needs a lock around an upload to S3 because
-	# there is no way to know in advance if the file is a replace or an insert (at least you have to 
+	# there is no way to know in advance if the file is a replace or an insert (at least you have to
 	# take the lock to find that out and do any operation in that lock).  In the new scheme any upsert
-	# should always create the new file (outside the lock) in S3 first and then make the changes to the 
+	# should always create the new file (outside the lock) in S3 first and then make the changes to the
 	# project in a lock, marking the old file as deleted if it exists.
 	upsertFile: wrapWithLock (project_id, folder_id, fileName, fsPath, linkedFileData, userId, callback = (err, file, isNewFile)->)->
 		ProjectLocator.findElement project_id: project_id, element_id: folder_id, type: "folder", (error, folder) ->

		methodWithLock.withoutLock = methodWithoutLock
		methodWithLock
	else
		# handle case with separate setup and locked stages		
		wrapWithSetup = methodWithoutLock.beforeLock  # a function to set things up before the lock
		mainTask = methodWithoutLock.withLock # function to execute inside the lock
		methodWithLock = wrapWithSetup (project_id, args..., callback) ->
			LockManager.runWithLock(LOCK_NAMESPACE, project_id, (cb) -> 
				mainTask(project_id, args..., cb)
			callback)
		methodWithLock.withoutLock = wrapWithSetup mainTask

					path: file.path
					url: FileStoreHandler._buildUrl(project_id, file.file._id)

				DocumentUpdaterHandler.resyncProjectHistory project_id, docs, files, callback
	_cleanUpEntity: (project, entity, entityType, path, userId, callback = (error) ->) ->
		if(entityType.indexOf("file") != -1)
			self._cleanUpFile project, entity, path, userId, callback
