From 7c9bb4aeaadc7ee1cf8605336d40c9f5df55547c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Magnus=20Ulf=20J=C3=B8rgensen?= Date: Sun, 29 Apr 2018 17:20:48 +0200 Subject: [PATCH] Try to debug unreqwuired .changed calls --- .../massivecraft/massivecore/MassiveCore.java | 8 +++++++ .../massivecraft/massivecore/store/Coll.java | 10 +++++++-- .../massivecore/store/Entity.java | 21 ++++++++++++++++++- 3 files changed, 36 insertions(+), 3 deletions(-) diff --git a/src/com/massivecraft/massivecore/MassiveCore.java b/src/com/massivecraft/massivecore/MassiveCore.java index bf73a16fa..c1d5b0258 100644 --- a/src/com/massivecraft/massivecore/MassiveCore.java +++ b/src/com/massivecraft/massivecore/MassiveCore.java @@ -259,6 +259,14 @@ public void onEnableInner() // Delete Files (at once and additionally after all plugins loaded) MassiveCoreTaskDeleteFiles.get().run(); Bukkit.getScheduler().scheduleSyncDelayedTask(this, MassiveCoreTaskDeleteFiles.get()); + + // Uneccessary call of .changed() for debug + Bukkit.getScheduler().runTaskLater(this, new Runnable() { + @Override + public void run() { + MassiveCoreMConf.get().changed(); + } + }, 200L); } @Override diff --git a/src/com/massivecraft/massivecore/store/Coll.java b/src/com/massivecraft/massivecore/store/Coll.java index d82c7ba7b..336c7003a 100644 --- a/src/com/massivecraft/massivecore/store/Coll.java +++ b/src/com/massivecraft/massivecore/store/Coll.java @@ -9,7 +9,6 @@ import com.massivecraft.massivecore.mixin.MixinModification; import com.massivecraft.massivecore.store.migrator.MigratorUtil; import com.massivecraft.massivecore.util.MUtil; -import com.massivecraft.massivecore.util.ReflectionUtil; import com.massivecraft.massivecore.util.Txt; import com.massivecraft.massivecore.xlib.gson.Gson; import com.massivecraft.massivecore.xlib.gson.JsonElement; @@ -555,7 +554,13 @@ public Modification syncIdFixed(String id, final Modification suppliedModificati this.removeIdentifiedModificationFixed(id); break; } - + + E entity = this.getFixed(id); + if (entity != null) + { + entity.setLastStackTraceChanged(null); + } + return modification; } @@ -607,6 +612,7 @@ private void checkActuallyModifiedFixed(String id) String change = Txt.implode(messages, Txt.parse(" | ")); String message = Txt.parse("[No Modification] %s", change); this.getPlugin().log(message); + this.getPlugin().log(MUtil.getStackTraceString(entity.getLastStackTraceChanged(), true)); } protected void logModification(E entity, Modification modification) diff --git a/src/com/massivecraft/massivecore/store/Entity.java b/src/com/massivecraft/massivecore/store/Entity.java index e125658cd..7a06c74d7 100644 --- a/src/com/massivecraft/massivecore/store/Entity.java +++ b/src/com/massivecraft/massivecore/store/Entity.java @@ -1,7 +1,11 @@ package com.massivecraft.massivecore.store; +import com.massivecraft.massivecore.ConfServer; +import com.massivecraft.massivecore.util.MUtil; import com.massivecraft.massivecore.xlib.gson.JsonObject; +import java.util.List; + // Self referencing generic. // http://www.angelikalanger.com/GenericsFAQ/FAQSections/ProgrammingIdioms.html#FAQ206 public class Entity> extends EntityInternal @@ -31,13 +35,20 @@ public String getUniverse() private volatile transient boolean lastDefault = false; public boolean getLastDefault() { return this.lastDefault; } public void setLastDefault(boolean lastDefault) { this.lastDefault = lastDefault; } - + + private volatile transient List lastStackTraceChanged; + public List getLastStackTraceChanged() { return this.lastStackTraceChanged; } + public void setLastStackTraceChanged(List lastStackTraceChanged) { this.lastStackTraceChanged = lastStackTraceChanged; } + public void clearSyncLogFields() { this.lastRaw = null; this.lastMtime = 0; this.lastDefault = false; + this.lastStackTraceChanged = null; } + + // -------------------------------------------- // // ATTACH AND DETACH @@ -62,6 +73,14 @@ public E detach() // -------------------------------------------- // // SYNC AND IO ACTIONS // -------------------------------------------- // + + @Override + public void changed() + { + super.changed(); + if (!ConfServer.localPollingEnabled) return; + this.lastStackTraceChanged = MUtil.getStackTrace(); + } public Modification sync() {