@@ -144,7 +144,6 @@ public void addKeyImages(Collection<String> keyImages, String groupId) {
144144 if (!keyImageGroups .containsKey (groupId )) keyImageGroups .put (groupId , new HashSet <String >());
145145 Set <String > keyImagesGroup = keyImageGroups .get (groupId );
146146 keyImagesGroup .addAll (keyImages );
147- refreshPolling ();
148147 }
149148 }
150149
@@ -159,8 +158,13 @@ public void removeKeyImages(Collection<String> keyImages, String groupId) {
159158 if (keyImagesGroup == null ) return ;
160159 keyImagesGroup .removeAll (keyImages );
161160 if (keyImagesGroup .isEmpty ()) keyImageGroups .remove (groupId );
161+ Set <String > allKeyImages = getKeyImages ();
162162 synchronized (lastStatuses ) {
163- for (String lastKeyImage : new HashSet <>(lastStatuses .keySet ())) lastStatuses .remove (lastKeyImage );
163+ for (String keyImage : keyImages ) {
164+ if (lastStatuses .containsKey (keyImage ) && !allKeyImages .contains (keyImage )) {
165+ lastStatuses .remove (keyImage );
166+ }
167+ }
164168 }
165169 refreshPolling ();
166170 }
@@ -171,10 +175,10 @@ public void removeKeyImages(String groupId) {
171175 Set <String > keyImagesGroup = keyImageGroups .get (groupId );
172176 if (keyImagesGroup == null ) return ;
173177 keyImageGroups .remove (groupId );
174- Set <String > keyImages = getKeyImages ();
178+ Set <String > allKeyImages = getKeyImages ();
175179 synchronized (lastStatuses ) {
176180 for (String keyImage : keyImagesGroup ) {
177- if (lastStatuses .containsKey (keyImage ) && !keyImages .contains (keyImage )) {
181+ if (lastStatuses .containsKey (keyImage ) && !allKeyImages .contains (keyImage )) {
178182 lastStatuses .remove (keyImage );
179183 }
180184 }
@@ -265,6 +269,7 @@ public void poll() {
265269
266270 // announce changes
267271 if (!changedStatuses .isEmpty ()) {
272+ log .info ("Announcing " + changedStatuses .size () + " key image spent status changes" );
268273 for (XmrKeyImageListener listener : new ArrayList <XmrKeyImageListener >(listeners )) {
269274 listener .onSpentStatusChanged (changedStatuses );
270275 }
0 commit comments