Fix deadlock when loading users and rosters

Description

Java stack information for the threads listed above:
===================================================
"Client SR - 32012609":
at org.jivesoftware.wildfire.user.UserManager.getUser(UserManager.java:163)

  • waiting to lock <0x8f7e3ff0> (a java.lang.String)
    at org.jivesoftware.wildfire.user.UserCollection$UserIterator.getNextElement(UserCollection.java:94)
    at org.jivesoftware.wildfire.user.UserCollection$UserIterator.hasNext(UserCollection.java:57)
    at org.jivesoftware.wildfire.roster.RosterManager.getSharedUsersForRoster(RosterManager.java:702)
    at org.jivesoftware.wildfire.roster.Roster.getSharedUsers(Roster.java:505)
    at org.jivesoftware.wildfire.roster.Roster.<init>(Roster.java:110)
    at org.jivesoftware.wildfire.roster.RosterManager.getRoster(RosterManager.java:90)
    - locked <0x8f7e4020> (a java.lang.String)
    at org.jivesoftware.wildfire.handler.PresenceUpdateHandler.broadcastUpdate(PresenceUpdateHandler.java:257)
    at org.jivesoftware.wildfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:96)
    at org.jivesoftware.wildfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:153)
    at org.jivesoftware.wildfire.PresenceRouter.handle(PresenceRouter.java:92)
    at org.jivesoftware.wildfire.PresenceRouter.route(PresenceRouter.java:61)
    at org.jivesoftware.wildfire.PacketRouter.route(PacketRouter.java:73)
    at org.jivesoftware.wildfire.net.SocketReader.processPresence(SocketReader.java:445)
    at org.jivesoftware.wildfire.net.ClientSocketReader.processPresence(ClientSocketReader.java:56)
    at org.jivesoftware.wildfire.net.SocketReader.readStream(SocketReader.java:242)
    at org.jivesoftware.wildfire.net.SocketReader.run(SocketReader.java:119)
    at java.lang.Thread.run(Unknown Source)
    "Client SR - 22376977":
    at org.jivesoftware.wildfire.user.UserManager.getUser(UserManager.java:163)
    - waiting to lock <0x8f7e4020> (a java.lang.String)
    at org.jivesoftware.wildfire.user.UserCollection$UserIterator.getNextElement(UserCollection.java:94)
    at org.jivesoftware.wildfire.user.UserCollection$UserIterator.hasNext(UserCollection.java:57)
    at org.jivesoftware.wildfire.roster.RosterManager.getSharedUsersForRoster(RosterManager.java:702)
    at org.jivesoftware.wildfire.roster.Roster.getSharedUsers(Roster.java:505)
    at org.jivesoftware.wildfire.roster.Roster.<init>(Roster.java:110)
    at org.jivesoftware.wildfire.roster.RosterManager.getRoster(RosterManager.java:90)
    - locked <0x8f7e3ff0> (a java.lang.String)
    at org.jivesoftware.wildfire.handler.PresenceUpdateHandler.broadcastUpdate(PresenceUpdateHandler.java:257)
    at org.jivesoftware.wildfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:96)
    at org.jivesoftware.wildfire.handler.PresenceUpdateHandler.process(PresenceUpdateHandler.java:153)
    at org.jivesoftware.wildfire.PresenceRouter.handle(PresenceRouter.java:92)
    at org.jivesoftware.wildfire.PresenceRouter.route(PresenceRouter.java:61)
    at org.jivesoftware.wildfire.PacketRouter.route(PacketRouter.java:73)
    at org.jivesoftware.wildfire.net.SocketReader.processPresence(SocketReader.java:445)
    at org.jivesoftware.wildfire.net.ClientSocketReader.processPresence(ClientSocketReader.java:56)
    at org.jivesoftware.wildfire.net.SocketReader.readStream(SocketReader.java:242)
    at org.jivesoftware.wildfire.net.SocketReader.run(SocketReader.java:119)
    at java.lang.Thread.run(Unknown Source)

Found 1 deadlock.

Environment

None

Activity

Show:
Fixed

Details

Assignee

Reporter

Components

Fix versions

Affects versions

Priority

Created March 31, 2006 at 5:02 AM
Updated March 31, 2006 at 5:07 AM
Resolved March 31, 2006 at 5:07 AM

Flag notifications