public class org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater extends java.lang.Object
{
private static final org.hibernate.search.mapper.orm.outboxpolling.logging.impl.Log log;
private static final int MAX_RETRIES;
private final org.hibernate.search.engine.reporting.FailureHandler failureHandler;
private final org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventLoader loader;
private final org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventProcessingPlan processingPlan;
private final org.hibernate.engine.spi.SessionImplementor session;
private final java.lang.String processorName;
private final int retryAfter;
private final java.util.Set eventsIds;
private final java.util.Set failedEventIds;
public void <init>(org.hibernate.search.engine.reporting.FailureHandler, org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventLoader, org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventProcessingPlan, org.hibernate.engine.spi.SessionImplementor, java.lang.String, int)
{
org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventLoader v;
org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater v;
java.util.function.Function v, v;
int v;
java.lang.String v;
java.util.stream.Collector v, v;
org.hibernate.search.engine.reporting.FailureHandler v;
java.util.List v, v;
java.util.stream.Stream v, v, v, v;
java.lang.Object v, v;
org.hibernate.engine.spi.SessionImplementor v;
org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventProcessingPlan v;
v := @this: org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater;
v := @parameter: org.hibernate.search.engine.reporting.FailureHandler;
v := @parameter: org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventLoader;
v := @parameter: org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventProcessingPlan;
v := @parameter: org.hibernate.engine.spi.SessionImplementor;
v := @parameter: java.lang.String;
v := @parameter: int;
specialinvoke v.<java.lang.Object: void <init>()>();
v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: org.hibernate.search.engine.reporting.FailureHandler failureHandler> = v;
v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventLoader loader> = v;
v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventProcessingPlan processingPlan> = v;
v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: org.hibernate.engine.spi.SessionImplementor session> = v;
v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: java.lang.String processorName> = v;
v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: int retryAfter> = v;
v = virtualinvoke v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventProcessingPlan: java.util.List getEvents()>();
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater$getId__22: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toSet()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: java.util.Set eventsIds> = v;
v = virtualinvoke v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventProcessingPlan: java.util.List getFailedEvents()>();
v = interfaceinvoke v.<java.util.List: java.util.stream.Stream stream()>();
v = staticinvoke <org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater$getId__23: java.util.function.Function bootstrap$()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.util.stream.Stream map(java.util.function.Function)>(v);
v = staticinvoke <java.util.stream.Collectors: java.util.stream.Collector toSet()>();
v = interfaceinvoke v.<java.util.stream.Stream: java.lang.Object collect(java.util.stream.Collector)>(v);
v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: java.util.Set failedEventIds> = v;
return;
}
public boolean thereAreStillEventsToProcess()
{
java.util.Set v;
org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater v;
boolean v, v;
v := @this: org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater;
v = v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: java.util.Set eventsIds>;
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
return v;
}
public void process()
{
org.hibernate.search.mapper.orm.outboxpolling.logging.impl.Log v;
org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventLoader v;
org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater v;
org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEvent$Status v;
java.util.ArrayList v;
int v, v, v, v;
java.lang.String v, v, v;
boolean v, v, v;
java.util.Iterator v, v;
java.util.Set v, v, v;
java.util.UUID v, v;
java.time.Instant v, v;
java.util.List v;
java.lang.Object v, v;
org.hibernate.engine.spi.SessionImplementor v, v;
v := @this: org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater;
v = v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventLoader loader>;
v = v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: org.hibernate.engine.spi.SessionImplementor session>;
v = v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: java.util.Set eventsIds>;
v = v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: java.lang.String processorName>;
v = virtualinvoke v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventLoader: java.util.List loadLocking(org.hibernate.Session,java.util.Set,java.lang.String)>(v, v, v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEvent: java.util.UUID getId()>();
v = v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: java.util.Set eventsIds>;
interfaceinvoke v.<java.util.Set: boolean remove(java.lang.Object)>(v);
v = v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: java.util.Set failedEventIds>;
v = interfaceinvoke v.<java.util.Set: boolean contains(java.lang.Object)>(v);
if v == 0 goto label;
interfaceinvoke v.<java.util.List: boolean remove(java.lang.Object)>(v);
v = virtualinvoke v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEvent: int getRetries()>();
v = v + 1;
if v < 3 goto label;
specialinvoke v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: void notifyMaxRetriesReached(org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEvent)>(v);
v = <org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEvent$Status: org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEvent$Status ABORTED>;
virtualinvoke v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEvent: void setStatus(org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEvent$Status)>(v);
goto label;
label:
virtualinvoke v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEvent: void setRetries(int)>(v);
v = v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: int retryAfter>;
if v <= 0 goto label;
v = staticinvoke <java.time.Instant: java.time.Instant now()>();
v = v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: int retryAfter>;
v = virtualinvoke v.<java.time.Instant: java.time.Instant plusSeconds(long)>(v);
goto label;
label:
v = staticinvoke <java.time.Instant: java.time.Instant now()>();
label:
virtualinvoke v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEvent: void setProcessAfter(java.time.Instant)>(v);
v = <org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: org.hibernate.search.mapper.orm.outboxpolling.logging.impl.Log log>;
v = virtualinvoke v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEvent: java.util.UUID getId()>();
v = virtualinvoke v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEvent: java.lang.String getEntityName()>();
v = virtualinvoke v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEvent: java.lang.String getEntityId()>();
interfaceinvoke v.<org.hibernate.search.mapper.orm.outboxpolling.logging.impl.Log: void backgroundIndexingRetry(java.util.UUID,java.lang.String,java.lang.String,int,java.time.Instant)>(v, v, v, v, v);
goto label;
label:
v = interfaceinvoke v.<java.util.List: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: org.hibernate.engine.spi.SessionImplementor session>;
interfaceinvoke v.<org.hibernate.engine.spi.SessionImplementor: void remove(java.lang.Object)>(v);
goto label;
label:
return;
}
private void notifyMaxRetriesReached(org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEvent)
{
org.hibernate.search.util.common.SearchException v;
org.hibernate.search.mapper.orm.outboxpolling.logging.impl.Log v;
org.hibernate.search.engine.reporting.EntityIndexingFailureContext v;
org.hibernate.search.engine.common.EntityReference v;
org.hibernate.search.engine.reporting.FailureHandler v;
org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater v;
org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEvent v;
org.hibernate.search.engine.reporting.EntityIndexingFailureContext$Builder v;
java.lang.String v, v;
org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventProcessingPlan v;
v := @this: org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater;
v := @parameter: org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEvent;
v = staticinvoke <org.hibernate.search.engine.reporting.EntityIndexingFailureContext: org.hibernate.search.engine.reporting.EntityIndexingFailureContext$Builder builder()>();
v = <org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: org.hibernate.search.mapper.orm.outboxpolling.logging.impl.Log log>;
v = interfaceinvoke v.<org.hibernate.search.mapper.orm.outboxpolling.logging.impl.Log: org.hibernate.search.util.common.SearchException maxRetryExhausted(int)>(3);
virtualinvoke v.<org.hibernate.search.engine.reporting.EntityIndexingFailureContext$Builder: void throwable(java.lang.Throwable)>(v);
virtualinvoke v.<org.hibernate.search.engine.reporting.EntityIndexingFailureContext$Builder: void failingOperation(java.lang.Object)>("Processing an outbox event.");
v = v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventProcessingPlan processingPlan>;
v = virtualinvoke v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEvent: java.lang.String getEntityName()>();
v = virtualinvoke v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEvent: java.lang.String getEntityId()>();
v = virtualinvoke v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventProcessingPlan: org.hibernate.search.engine.common.EntityReference entityReference(java.lang.String,java.lang.String,java.lang.Throwable)>(v, v, v);
virtualinvoke v.<org.hibernate.search.engine.reporting.EntityIndexingFailureContext$Builder: void failingEntityReference(org.hibernate.search.engine.common.EntityReference)>(v);
v = v.<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: org.hibernate.search.engine.reporting.FailureHandler failureHandler>;
v = virtualinvoke v.<org.hibernate.search.engine.reporting.EntityIndexingFailureContext$Builder: org.hibernate.search.engine.reporting.EntityIndexingFailureContext build()>();
interfaceinvoke v.<org.hibernate.search.engine.reporting.FailureHandler: void handle(org.hibernate.search.engine.reporting.EntityIndexingFailureContext)>(v);
return;
}
static void <clinit>()
{
java.lang.Object v;
java.lang.invoke.MethodHandles$Lookup v;
v = staticinvoke <java.lang.invoke.MethodHandles: java.lang.invoke.MethodHandles$Lookup lookup()>();
v = staticinvoke <org.hibernate.search.util.common.logging.impl.LoggerFactory: java.lang.Object make(java.lang.Class,java.lang.invoke.MethodHandles$Lookup)>(class "Lorg/hibernate/search/mapper/orm/outboxpolling/logging/impl/Log;", v);
<org.hibernate.search.mapper.orm.outboxpolling.event.impl.OutboxEventUpdater: org.hibernate.search.mapper.orm.outboxpolling.logging.impl.Log log> = v;
return;
}
}