I am trying to save an entity to Google App Engine Datastore only if it does not exist, if it does the thread should not continue.
Main issue is: I want to prevent any r
When calling Datastore from App Engine, the api is different. Use a transaction. First try to get() the entity to see if it's there. If not, put() the entity.
Here's some sample code that demonstrates transactions using the App Engine API: https://github.com/GoogleCloudPlatform/java-docs-samples/blob/master/appengine/datastore/src/test/java/com/example/appengine/TransactionsTest.java
Assuming that the both threads are trying to save an entity with the same key, then this code:
datastore.add(entity);
will do what you want. If an entity already exists in datastore with the same key, then .add() will throw an exception.