{"action":"opened","issue":{"url":"https://api.github.com/repos/lunatech-labs/lunatech-durable-data/issues/3","labels_url":"https://api.github.com/repos/lunatech-labs/lunatech-durable-data/issues/3/labels{/name}","comments_url":"https://api.github.com/repos/lunatech-labs/lunatech-durable-data/issues/3/comments","events_url":"https://api.github.com/repos/lunatech-labs/lunatech-durable-data/issues/3/events","html_url":"https://github.com/lunatech-labs/lunatech-durable-data/issues/3","id":105588373,"number":3,"title":"Is Files.delete() atomic?","user":{"login":"eamelink","id":332784,"avatar_url":"https://avatars.githubusercontent.com/u/332784?v=3","gravatar_id":"","url":"https://api.github.com/users/eamelink","html_url":"https://github.com/eamelink","followers_url":"https://api.github.com/users/eamelink/followers","following_url":"https://api.github.com/users/eamelink/following{/other_user}","gists_url":"https://api.github.com/users/eamelink/gists{/gist_id}","starred_url":"https://api.github.com/users/eamelink/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/eamelink/subscriptions","organizations_url":"https://api.github.com/users/eamelink/orgs","repos_url":"https://api.github.com/users/eamelink/repos","events_url":"https://api.github.com/users/eamelink/events{/privacy}","received_events_url":"https://api.github.com/users/eamelink/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-09-09T12:43:07Z","updated_at":"2015-09-09T12:43:07Z","closed_at":null,"body":"The persistent queue implementation depends on Files.delete to throw an exception if the file is already deleted. This does not appear to be guaranteed according to Javadoc.\r\n\r\nIf we instead move to a temp name, see if that worked, and then delete, we can use the guaranteed atomicity of move to implement this in a reliable way."}}