Delete correct value to mark the Sone as deleted.
[Sone.git] / src / main / java / net / pterodactylus / sone / core / Core.java
index dc6516d..bd73c0c 100644 (file)
@@ -389,7 +389,7 @@ public class Core implements IdentityListener {
        public Set<Sone> getLikes(Reply reply) {
                Set<Sone> sones = new HashSet<Sone>();
                for (Sone sone : getSones()) {
-                       if (sone.getLikedPostIds().contains(reply.getId())) {
+                       if (sone.getLikedReplyIds().contains(reply.getId())) {
                                sones.add(sone);
                        }
                }
@@ -567,6 +567,12 @@ public class Core implements IdentityListener {
                        soneInserters.remove(sone).stop();
                }
                identityManager.removeContext((OwnIdentity) sone.getIdentity(), "Sone");
+               identityManager.removeProperty((OwnIdentity) sone.getIdentity(), "Sone.LatestEdition");
+               try {
+                       configuration.getLongValue("Sone/" + sone.getId() + "/Time").setValue(null);
+               } catch (ConfigurationException ce1) {
+                       logger.log(Level.WARNING, "Could not remove Sone from configuration!", ce1);
+               }
        }
 
        /**
@@ -584,7 +590,11 @@ public class Core implements IdentityListener {
 
                /* load Sone. */
                String sonePrefix = "Sone/" + sone.getId();
-               long soneTime = configuration.getLongValue(sonePrefix + "/Time").getValue((long) 0);
+               Long soneTime = configuration.getLongValue(sonePrefix + "/Time").getValue(null);
+               if (soneTime == null) {
+                       logger.log(Level.INFO, "Could not load Sone because there is no Sone has been saved.");
+                       return;
+               }
                long soneModificationCounter = configuration.getLongValue(sonePrefix + "/ModificationCounter").getValue((long) 0);
 
                /* load profile. */