Hi, As you might know, I am currently working on implementing project sharing by non-hosts. It currently works like this:
- Bob (a non-host) initiates a project negotiation with Alice (the host). If Alice accepts it, the negotiation proceeds as normal. - After having received the project, Alice distributes it to Carl and Dave (the other session members) by starting a project negotiation with each of them, just as if she shared the project in the first place (with the exception that she omits sending it to Bob, who obviously has the project already). When I initially tested this, something strange happened: while code changes were properly synchronized between Alice, Carl and Dave afterwards, the changes of Bob were completely ignored. After some analysis, I figured out that the reason for this lied in the way Saros projects were identified: not only by their name, but also by the JID of its "owner" - that is, the user from which the project was received. // IncomingProjectNegotiation.java:206 session.addProjectMapping(projectID, project, peer); The problem here is that Bob thinks he "owns" the project (because he shared it), while the other members of the session assume the owner to be Alice (as she distributed the project to them). I guess this results in both sides thinking they are doing changes to different projects, which prevents synchronization. In my (admittedly hacky) draft patch, I addressed this problem by just always giving "ownership" to the host as far as project identification is concerned: session.addProjectMapping(projectID, project, session.getHost().getJID()); This makes everything work as expected. Which makes me wonder: why does the code have the notion of "project ownership" anyway, given that the host was the only user that could share (and thus "own") a project? Is this a leftover of the time where every user could share a project with everyone else directly? If so, shouldn't this concept be removed from the codebase? Regards, Denis ------------------------------------------------------------------------------ One dashboard for servers and applications across Physical-Virtual-Cloud Widest out-of-the-box monitoring support with 50+ applications Performance metrics, stats and reports that give you Actionable Insights Deep dive visibility with transaction tracing using APM Insight. http://ad.doubleclick.net/ddm/clk/290420510;117567292;y _______________________________________________ DPP-Devel mailing list DPP-Devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/dpp-devel