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

Reply via email to