On Wed, Apr 13, 2016 at 11:54 PM, Sergiu Dumitriu <ser...@xwiki.org> wrote: > On 04/13/2016 03:10 AM, Thomas Mortagne wrote: >> On Tue, Apr 12, 2016 at 10:11 PM, Vincent Massol <vinc...@massol.net> wrote: >>> Hi Peter, >>> >>>> On 05 Apr 2016, at 19:28, Peter Huisman <p.huis...@ximm.nl> wrote: >>>> >>>> From the XWiki source code, I see there is a difference in passing a >>>> document to the evenmanager: >>>> >>>> The DocumentDeletingEvent is passing a “new >>>> XWikiDocument(doc.getDocumentReference())" >>>> The DocumentUpdatedEvent (as an example) is passing the doc (the actual >>>> XWikiDocument) >>>> >>>> The difference is, that the Document passed in the DeleteEvent is a new >>>> XWikiDocument and not the XWikiDocument that is about to be deleted. >>>> >>>> Is there a reason why this difference exists? >>> >>> he code in the XWiki class doing the notify has been there for a long time >>> AFAICS: >>> >>> om.notify(new DocumentDeletingEvent(doc.getDocumentReference()), >>> new XWikiDocument(doc.getDocumentReference()), context); >>> >>> However, I think it’s not correct. I think it should pass the document and >>> not a clone, because an Event Listener should be able to modify the >>> instance that’s going to be saved. >> >> It's a delete not a save so modifying it would be useless. I guess the >> intend here was to have the same kind of data than what you get with >> DocumentDeletedEvent. >> >> What is wrong and should be fixed is that the document sent with the >> event should have the real one as original document (exactly like it's >> done for DocumentDeletedEvent). > > Thomas is right, the data sent in the event is supposed to be what the > database will contain after the event is done, and that's what will > (apparently, but not actually) be in the database after the delete: a > new blank document, and doc.originalDoc should be what was before the > change in the database. At least this was the original intention, all > events should behave like this, so that a diff can be computed between > doc and originalDoc regardless of what action happened to the document. >
> However, the Javadoc for DocumentDeletingEvent is misleading: > https://github.com/xwiki/xwiki-platform/blob/master/xwiki-platform-core/xwiki-platform-bridge/src/main/java/org/xwiki/bridge/event/DocumentDeletingEvent.java#L31 Javadoc is now fixed. > >>> >>> So I’d open a bug for this. Let’s see if the others agree. >>> >>> Thanks >>> -Vincent >>> > > > -- > Sergiu Dumitriu > http://purl.org/net/sergiu/ > _______________________________________________ > users mailing list > users@xwiki.org > http://lists.xwiki.org/mailman/listinfo/users -- Thomas Mortagne _______________________________________________ users mailing list users@xwiki.org http://lists.xwiki.org/mailman/listinfo/users