Non existent user in Roster/Groups - Bug or feature?


I made a test that gave me a weird behavior and I don’'t know if it is a bug or if it is a normal behavior.

First lets describe the situation

I have a WF running for domain

I create 3 users in my server: a1, a2, a3, and I set all of them in a shared group aGroup. In this group I add also a non existent user:

If I connect my clients a1, a2 and a3, they can see each other in the aGroup list and they can also see b disconnected.

Now a2 adds a3 in its own roster Friend list for example.

Then I call with a personal plugin deleteUser(a3). The operation deletes a3 from Users but not from sharedGroups. I saw in the JSP page that there are several steps to remove totally a user.

My plugin then removes only user a3 from the jiveuser table and it remains defined in the aGroup shared group but like a remote user:

If I restart my clients, a1 sees a2 and b disconnected while a2 sees a1 and b disconnected but also a3.

1- Is it normal? I expected that any user of the shared group should see the same things, either all should see a3 or none as it is the case to b.

2- It could be clean to have a deleteUser with a propagate flag to remove users and its associated dependencies (rosters, groups, offline messages, …).

Having a look inside the constructor of Roster class, we have:

if (item.getSubStatus() != RosterItem.SUB_FROM) {


rosterItems.put(item.getJid().toBareJID(), item);


In a1 case it throws an Exception (UserNotFoundException) while in a2 case, we skip this test.

What is your opinion about that ?


there are so many open issues regarding shared groups (JM-561, JM-658, JM-370, JM-686) so I wonder if it helps to create a new issue.



You are right, there are already several bugs related to Shared Groups.

Anyway I made a search and did not find exactly the described behavior.

I just mean that the behavior I describe can be considered as normal although I am not sure.

If it is a bug, It is clearly not a critical one and I just wanted to get a status from Jive team to know if it was a bug or not so that I can forward the status on my side