mirror of
https://github.com/google/nomulus.git
synced 2025-07-24 19:48:32 +02:00
Add more logging in the event of replay put/delete failure (#1262)
* Add more logging in the event of replay put/delete failure
This commit is contained in:
parent
a369e57e5c
commit
fb002953c8
1 changed files with 31 additions and 21 deletions
|
@ -233,20 +233,25 @@ public class ReplayCommitLogsToSqlAction implements Runnable {
|
||||||
|
|
||||||
private void handleEntityPut(Entity entity) {
|
private void handleEntityPut(Entity entity) {
|
||||||
Object ofyPojo = auditedOfy().toPojo(entity);
|
Object ofyPojo = auditedOfy().toPojo(entity);
|
||||||
if (ofyPojo instanceof DatastoreEntity) {
|
try {
|
||||||
DatastoreEntity datastoreEntity = (DatastoreEntity) ofyPojo;
|
if (ofyPojo instanceof DatastoreEntity) {
|
||||||
datastoreEntity
|
DatastoreEntity datastoreEntity = (DatastoreEntity) ofyPojo;
|
||||||
.toSqlEntity()
|
datastoreEntity
|
||||||
.ifPresent(
|
.toSqlEntity()
|
||||||
sqlEntity -> {
|
.ifPresent(
|
||||||
sqlEntity.beforeSqlSaveOnReplay();
|
sqlEntity -> {
|
||||||
jpaTm().put(sqlEntity);
|
sqlEntity.beforeSqlSaveOnReplay();
|
||||||
});
|
jpaTm().put(sqlEntity);
|
||||||
} else {
|
});
|
||||||
// this should never happen, but we shouldn't fail on it
|
} else {
|
||||||
logger.atSevere().log(
|
// this should never happen, but we shouldn't fail on it
|
||||||
"%s does not implement DatastoreEntity, which is necessary for SQL replay.",
|
logger.atSevere().log(
|
||||||
ofyPojo.getClass());
|
"%s does not implement DatastoreEntity, which is necessary for SQL replay.",
|
||||||
|
ofyPojo.getClass());
|
||||||
|
}
|
||||||
|
} catch (Throwable t) {
|
||||||
|
logger.atSevere().log("Error when replaying object %s", ofyPojo);
|
||||||
|
throw t;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -262,13 +267,18 @@ public class ReplayCommitLogsToSqlAction implements Runnable {
|
||||||
"Skipping SQL delete for kind %s since it is not convertible.", key.getKind());
|
"Skipping SQL delete for kind %s since it is not convertible.", key.getKind());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Class<?> entityClass = entityVKey.getKind();
|
try {
|
||||||
// Delete the key iff the class represents a JPA entity that is replicated
|
Class<?> entityClass = entityVKey.getKind();
|
||||||
if (!NonReplicatedEntity.class.isAssignableFrom(entityClass)
|
// Delete the key iff the class represents a JPA entity that is replicated
|
||||||
&& !DatastoreOnlyEntity.class.isAssignableFrom(entityClass)
|
if (!NonReplicatedEntity.class.isAssignableFrom(entityClass)
|
||||||
&& entityClass.getAnnotation(javax.persistence.Entity.class) != null) {
|
&& !DatastoreOnlyEntity.class.isAssignableFrom(entityClass)
|
||||||
ReplaySpecializer.beforeSqlDelete(entityVKey);
|
&& entityClass.getAnnotation(javax.persistence.Entity.class) != null) {
|
||||||
jpaTm().delete(entityVKey);
|
ReplaySpecializer.beforeSqlDelete(entityVKey);
|
||||||
|
jpaTm().delete(entityVKey);
|
||||||
|
}
|
||||||
|
} catch (Throwable t) {
|
||||||
|
logger.atSevere().log("Error when deleting key %s", entityVKey);
|
||||||
|
throw t;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue