> HTTP request is handled by the same Thread, and Sessions are per Thread, we > cannot store page-save approval workflows into the Session. They actually > need to be flushed to the persistence layer (=saved to the filesystem), or > else the workflow won't be there to be approved, unless you're really lucky. > > Perhaps this is the reason why things are failing? Also note that once
No. It really is failing because ContentManager is reporting the node exists. Which it does, in memory -- it just hasn't been saved to the persistence layer. ContentManager.pageExists does *not* check whether the node is new (i.e., unsaved) when it reports back; it only checks that there's a Node in memory. We would have found this problem sooner or later -- it's just the the pre-save Workflow code is the only one so far that's triggered it. (I agree entirely, by the way, that workflows should be persisted to the JCR -- that is important. But addressing that without addressing the inconsistency with pageExists() would not solve the problem.) > I think it's fine, but we must remember that any WikiPage.save() causes a > new version in the repository. Not to be a smartass, does Priha have any version support? The versioning-related tests seem to fail. > Anybody want to BTW make sure all our unit tests also run with Jackrabbit? I've got to duck this one. That is a great idea, though.
