Move post creation back to CreatePostPage.
authorDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Thu, 14 Oct 2010 08:40:17 +0000 (10:40 +0200)
committerDavid ‘Bombe’ Roden <bombe@pterodactylus.net>
Thu, 14 Oct 2010 08:40:17 +0000 (10:40 +0200)
src/main/java/net/pterodactylus/sone/data/Sone.java
src/main/java/net/pterodactylus/sone/web/CreatePostPage.java

index a40b12e..dbe1b35 100644 (file)
@@ -217,14 +217,14 @@ public class Sone {
        }
 
        /**
-        * Adds a post with the given text to this Sone.
+        * Adds the given post to this Sone. The post will not be added if its
+        * {@link Post#getSone() Sone} is not this Sone.
         *
-        * @param text
-        *            The text to post
+        * @param post
+        *            The post to add
         */
-       public synchronized void addPost(String text) {
-               Post post = new Post(this, System.currentTimeMillis(), text);
-               if (posts.add(post)) {
+       public synchronized void addPost(Post post) {
+               if (post.getSone().equals(this) && posts.add(post)) {
                        modificationCounter++;
                }
        }
index 44e0d21..d44ee4f 100644 (file)
@@ -18,6 +18,7 @@
 package net.pterodactylus.sone.web;
 
 import net.pterodactylus.sone.data.Post;
+import net.pterodactylus.sone.data.Sone;
 import net.pterodactylus.util.template.Template;
 
 /**
@@ -51,7 +52,9 @@ public class CreatePostPage extends SoneTemplatePage {
                super.processTemplate(request, template);
                String text = request.getHttpRequest().getPartAsStringFailsafe("text", 65536).trim();
                if (text.length() != 0) {
-                       getCurrentSone(request.getToadletContext()).addPost(text);
+                       Sone currentSone = getCurrentSone(request.getToadletContext());
+                       Post post = new Post(currentSone, System.currentTimeMillis(), text);
+                       currentSone.addPost(post);
                        throw new RedirectException("index.html");
                }
                template.set("errorTextEmpty", true);