Removing rosterItem from Remote Server not work properly

The Case is as follows:

STEP 1: A and B are friends

STEP 2: A is on one server and B is on another server

STEP 3: B deletes A

STEP 4: A is removed from B’s Roster But B not removed from A’s Roster.

I think the problem is here in IQRosterHandler:

else {
            // Recipient is remote so we just forward the packet to them
            String serverDomain = localServer.getServerInfo().getXMPPDomain();
            // Check if the recipient may be hosted by this server
            **if (!recipient.getDomain().contains(serverDomain)) {**
                // TODO Implete when s2s is implemented
            }
            else {
                Packet removePacket = createRemoveForward(sender, recipient);
                router.route(removePacket);
            }
        }

This should be changed as:

else {
            // Recipient is remote so we just forward the packet to them
            String serverDomain = localServer.getServerInfo().getXMPPDomain();
            // Check if the recipient may be hosted by this server
            **if (recipient.getDomain().contains(serverDomain)) {**
                // TODO Implete when s2s is implemented
            }
            else {
                Packet removePacket = createRemoveForward(sender, recipient);
                router.route(removePacket);
            }
        }

Can somebody guide me about it. Is I am ight.
ContentFilterErrorLog.txt (317600 Bytes)

I am attaching patch for this:
IQRosterHandler.java (12833 Bytes)