From: David ‘Bombe’ Roden Date: Wed, 5 Sep 2012 10:27:01 +0000 (+0200) Subject: Only allow a single trust update for any given identity pair. X-Git-Tag: 0.8.3^2~54^2~5 X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=commitdiff_plain;h=2d9d8cbf17b58cc6177af77befef5a69b7efd3f9 Only allow a single trust update for any given identity pair. --- diff --git a/src/main/java/net/pterodactylus/sone/core/TrustUpdater.java b/src/main/java/net/pterodactylus/sone/core/TrustUpdater.java index 91e1783..be6f39c 100644 --- a/src/main/java/net/pterodactylus/sone/core/TrustUpdater.java +++ b/src/main/java/net/pterodactylus/sone/core/TrustUpdater.java @@ -105,7 +105,16 @@ public class TrustUpdater extends AbstractService { * The comment of the trust relation */ public void setTrust(OwnIdentity truster, Identity trustee, Integer score, String comment) { - updateJobs.add(new SetTrustJob(truster, trustee, score, comment)); + SetTrustJob setTrustJob = new SetTrustJob(truster, trustee, score, comment); + if (updateJobs.contains(setTrustJob)) { + updateJobs.remove(setTrustJob); + } + logger.log(Level.FINER, "Adding Trust Update Job: " + setTrustJob); + try { + updateJobs.put(setTrustJob); + } catch (InterruptedException e) { + /* the queue is unbounded so it should never block. */ + } } //