[Fix] fixed OperationsLog.updateState(String, String, LogMessageState)
This commit is contained in:
parent
5934ebad42
commit
d28093ff92
|
@ -1,6 +1,7 @@
|
||||||
package li.strolch.handler.operationslog;
|
package li.strolch.handler.operationslog;
|
||||||
|
|
||||||
import static java.util.Collections.emptyList;
|
import static java.util.Collections.emptyList;
|
||||||
|
import static java.util.Collections.singletonList;
|
||||||
import static li.strolch.model.Tags.AGENT;
|
import static li.strolch.model.Tags.AGENT;
|
||||||
import static li.strolch.runtime.StrolchConstants.SYSTEM_USER_AGENT;
|
import static li.strolch.runtime.StrolchConstants.SYSTEM_USER_AGENT;
|
||||||
|
|
||||||
|
@ -113,7 +114,7 @@ public class OperationsLog extends StrolchComponent {
|
||||||
// persist changes for non-transient realms
|
// persist changes for non-transient realms
|
||||||
StrolchRealm realm = getContainer().getRealm(realmName);
|
StrolchRealm realm = getContainer().getRealm(realmName);
|
||||||
if (!realm.getMode().isTransient())
|
if (!realm.getMode().isTransient())
|
||||||
this.executorService.submit(() -> persist(realm, null, Collections.singletonList(message)));
|
this.executorService.submit(() -> persist(realm, null, singletonList(message)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -146,7 +147,7 @@ public class OperationsLog extends StrolchComponent {
|
||||||
|
|
||||||
StrolchRealm realm = getContainer().getRealm(realmName);
|
StrolchRealm realm = getContainer().getRealm(realmName);
|
||||||
if (!realm.getMode().isTransient()) {
|
if (!realm.getMode().isTransient()) {
|
||||||
this.executorService.submit(() -> persist(realm, logMessages));
|
this.executorService.submit(() -> updateStates(realm, logMessages));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -159,7 +160,7 @@ public class OperationsLog extends StrolchComponent {
|
||||||
|
|
||||||
StrolchRealm realm = getContainer().getRealm(realmName);
|
StrolchRealm realm = getContainer().getRealm(realmName);
|
||||||
if (!realm.getMode().isTransient()) {
|
if (!realm.getMode().isTransient()) {
|
||||||
this.executorService.submit(() -> persist(realm, logMessage, emptyList()));
|
this.executorService.submit(() -> updateStates(realm, singletonList(logMessage)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -214,7 +215,7 @@ public class OperationsLog extends StrolchComponent {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void persist(StrolchRealm realm, Collection<LogMessage> logMessages) {
|
private void updateStates(StrolchRealm realm, Collection<LogMessage> logMessages) {
|
||||||
try {
|
try {
|
||||||
runAsAgent(ctx -> {
|
runAsAgent(ctx -> {
|
||||||
try (StrolchTransaction tx = realm.openTx(ctx.getCertificate(), getClass(), false)) {
|
try (StrolchTransaction tx = realm.openTx(ctx.getCertificate(), getClass(), false)) {
|
||||||
|
|
|
@ -133,7 +133,24 @@ public class PostgreSqlLogMessageDao implements LogMessageDao {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void updateStates(Collection<LogMessage> logMessages) {
|
public void updateStates(Collection<LogMessage> logMessages) {
|
||||||
logMessages.forEach(this::updateState);
|
|
||||||
|
try (PreparedStatement ps = this.tx.getConnection().prepareStatement(updateLogMessageStateSql)) {
|
||||||
|
|
||||||
|
// update state
|
||||||
|
for (LogMessage logMessage : logMessages) {
|
||||||
|
ps.setString(1, logMessage.getState().name());
|
||||||
|
ps.setString(2, logMessage.getId());
|
||||||
|
ps.addBatch();
|
||||||
|
}
|
||||||
|
|
||||||
|
// we ignore the number of updates, as the message might have been deleted meanwhile
|
||||||
|
ps.executeUpdate();
|
||||||
|
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new StrolchPersistenceException(MessageFormat
|
||||||
|
.format("Failed to update states for {0} LogMessages due to {1}", logMessages.size(),
|
||||||
|
e.getLocalizedMessage()), e);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in New Issue