Skip to content

Commit 3d5f268

Browse files
committed
wip
Signed-off-by: Attila Mészáros <a_meszaros@apple.com>
1 parent b4595fc commit 3d5f268

File tree

2 files changed

+15
-20
lines changed

2 files changed

+15
-20
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/EventFilterDetails.java

Lines changed: 14 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,20 @@ public void increaseActiveUpdates() {
3232
activeUpdates = activeUpdates + 1;
3333
}
3434

35-
public boolean decreaseActiveUpdates() {
35+
/**
36+
* resourceVersion is needed for case when multiple parallel updates happening inside the
37+
* controller to prevent race condition and send event from {@link
38+
* ManagedInformerEventSource#eventFilteringUpdateAndCacheResource(HasMetadata, UnaryOperator)}
39+
*/
40+
public boolean decreaseActiveUpdates(String updatedResourceVersion) {
41+
if (updatedResourceVersion != null
42+
&& (lastOwnUpdatedResourceVersion == null
43+
|| ReconcilerUtilsInternal.compareResourceVersions(
44+
updatedResourceVersion, lastOwnUpdatedResourceVersion)
45+
> 0)) {
46+
lastOwnUpdatedResourceVersion = updatedResourceVersion;
47+
}
48+
3649
activeUpdates = activeUpdates - 1;
3750
return activeUpdates == 0;
3851
}
@@ -41,23 +54,6 @@ public void setLastEvent(ResourceEvent event) {
4154
lastEvent = event;
4255
}
4356

44-
/**
45-
* This is needed for case when multiple parallel updates happening inside the controller to
46-
* prevent race condition and send event from {@link
47-
* ManagedInformerEventSource#eventFilteringUpdateAndCacheResource(HasMetadata, UnaryOperator)}
48-
*/
49-
public void handleLastOwnUpdatedResourceVersion(String resourceVersion) {
50-
if (resourceVersion == null) {
51-
return;
52-
}
53-
if (lastOwnUpdatedResourceVersion == null
54-
|| ReconcilerUtilsInternal.compareResourceVersions(
55-
resourceVersion, lastOwnUpdatedResourceVersion)
56-
> 0) {
57-
lastOwnUpdatedResourceVersion = resourceVersion;
58-
}
59-
}
60-
6157
public Optional<ResourceEvent> getLatestEventAfterLastUpdateEvent() {
6258
if (lastEvent != null
6359
&& (lastOwnUpdatedResourceVersion == null

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/TemporaryResourceCache.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -85,8 +85,7 @@ public synchronized Optional<ResourceEvent> doneEventFilterModify(
8585
return Optional.empty();
8686
}
8787
var ed = activeUpdates.get(resourceID);
88-
ed.handleLastOwnUpdatedResourceVersion(updatedResourceVersion);
89-
if (ed.decreaseActiveUpdates()) {
88+
if (ed.decreaseActiveUpdates(updatedResourceVersion)) {
9089
activeUpdates.remove(resourceID);
9190
var res = ed.getLatestEventAfterLastUpdateEvent();
9291
log.debug(

0 commit comments

Comments
 (0)