Ignore Sones with invalid IDs.
[Sone.git] / src / main / java / net / pterodactylus / sone / core / Core.java
index b612c74..81c5185 100644 (file)
@@ -1061,6 +1061,11 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis
         */
        public void followSone(Sone sone, String soneId) {
                Validation.begin().isNotNull("Sone", sone).isNotNull("Sone ID", soneId).check();
+               Sone followedSone = getSone(soneId, true);
+               if (followedSone == null) {
+                       logger.log(Level.INFO, String.format("Ignored Sone with invalid ID: %s", soneId));
+                       return;
+               }
                followSone(sone, getSone(soneId));
        }
 
@@ -2409,8 +2414,13 @@ public class Core extends AbstractService implements IdentityListener, UpdateLis
                                break;
                        }
                        long time = configuration.getLongValue("SoneFollowingTimes/" + soneCounter + "/Time").getValue(Long.MAX_VALUE);
-                       synchronized (soneFollowingTimes) {
-                               soneFollowingTimes.put(getSone(soneId), time);
+                       Sone followedSone = getSone(soneId);
+                       if (followedSone == null) {
+                               logger.log(Level.WARNING, String.format("Ignoring Sone with invalid ID: %s", soneId));
+                       } else {
+                               synchronized (soneFollowingTimes) {
+                                       soneFollowingTimes.put(getSone(soneId), time);
+                               }
                        }
                        ++soneCounter;
                }