X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FTrustUpdater.java;h=3f347d5ba69dbe100c88265dba2be6de15a6510a;hp=91e17838ae07a25a5eec099e6bb73280c47510c8;hb=efb1006429e52a74f41fb6e1d7736736156bb13a;hpb=7adb27cbfa8dd5b6f844eb07f5ef0307aeacee1b diff --git a/src/main/java/net/pterodactylus/sone/core/TrustUpdater.java b/src/main/java/net/pterodactylus/sone/core/TrustUpdater.java index 91e1783..3f347d5 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. */ + } } // @@ -123,7 +132,11 @@ public class TrustUpdater extends AbstractService { if (shouldStop() || (updateJob == stopJob)) { break; } + logger.log(Level.FINE, "Running Trust Update Job: " + updateJob); + long startTime = System.currentTimeMillis(); updateJob.run(); + long endTime = System.currentTimeMillis(); + logger.log(Level.FINE, "Trust Update Job finished, took " + (endTime - startTime) + " ms."); } catch (InterruptedException ie1) { /* happens, ignore, loop. */ } @@ -202,7 +215,7 @@ public class TrustUpdater extends AbstractService { */ @Override public int hashCode() { - return ((truster == null) ? 0 : truster.hashCode()) ^ ((trustee == null) ? 0 : trustee.hashCode()); + return getClass().hashCode() ^ ((truster == null) ? 0 : truster.hashCode()) ^ ((trustee == null) ? 0 : trustee.hashCode()); } /**