}
/**
- * 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++;
}
}
package net.pterodactylus.sone.web;
import net.pterodactylus.sone.data.Post;
+import net.pterodactylus.sone.data.Sone;
import net.pterodactylus.util.template.Template;
/**
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);