Found following exceptipn today after upgrading from 3.1 b3 to 3.1:
2006.10.10 09:59:38 org.jivesoftware.wildfire.roster.RosterItemProvider.insertGroups(RosterItemProvi der.java:358)
org.postgresql.util.PSQLException: ERROR: duplicate key violates unique constraint “jiverostergroups_pk”
at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl .java:1512)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java: 1297)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:188)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java :430)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2State ment.java:346)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeUpdate(AbstractJdbc2Statemen t.java:300)
at org.jivesoftware.wildfire.roster.RosterItemProvider.insertGroups(RosterItemProv ider.java:355)
at org.jivesoftware.wildfire.roster.RosterItemProvider.updateItem(RosterItemProvid er.java:156)
at org.jivesoftware.wildfire.roster.Roster.updateRosterItem(Roster.java:394)
at org.jivesoftware.wildfire.gateway.BaseTransport.addOrUpdateRosterItem(BaseTrans port.java:926)
at org.jivesoftware.wildfire.gateway.BaseTransport.addOrUpdateRosterItem(BaseTrans port.java:979)
at org.jivesoftware.wildfire.gateway.BaseTransport.addOrUpdateRosterItem(BaseTrans port.java:993)
at org.jivesoftware.wildfire.gateway.BaseTransport.syncLegacyRoster(BaseTransport. java:1090)
at org.jivesoftware.wildfire.gateway.protocols.yahoo.YahooSession.syncUsers(YahooS ession.java:182)
at org.jivesoftware.wildfire.gateway.protocols.yahoo.YahooSession$1.run(YahooSessi on.java:113)
at org.jivesoftware.wildfire.gateway.protocols.yahoo.YahooSession.logIn(YahooSessi on.java:97)
at org.jivesoftware.wildfire.gateway.protocols.yahoo.YahooTransport.registrationLo ggedIn(YahooTransport.java:91)
at org.jivesoftware.wildfire.gateway.BaseTransport.processPacket(BaseTransport.jav a:249)
at org.jivesoftware.wildfire.gateway.BaseTransport.processPacket(BaseTransport.jav a:131)
at org.jivesoftware.wildfire.component.InternalComponentManager$RoutableComponent. process(InternalComponentManager.java:435)
at org.jivesoftware.wildfire.net.SocketPacketWriteHandler.process(SocketPacketWrit eHandler.java:53)
at org.jivesoftware.wildfire.spi.PacketDelivererImpl.deliver(PacketDelivererImpl.j ava:48)
at org.jivesoftware.wildfire.spi.PresenceManagerImpl.probePresence(PresenceManager Impl.java:293)
at org.jivesoftware.wildfire.spi.PresenceManagerImpl.handleProbe(PresenceManagerIm pl.java:191)
at org.jivesoftware.wildfire.PresenceRouter.handle(PresenceRouter.java:122)
at org.jivesoftware.wildfire.PresenceRouter.route(PresenceRouter.java:61)
at org.jivesoftware.wildfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:75)
at org.jivesoftware.wildfire.spi.PacketRouterImpl.route(PacketRouterImpl.java:56)
at org.jivesoftware.wildfire.component.InternalComponentManager.sendPacket(Interna lComponentManager.java:160)
at org.jivesoftware.wildfire.gateway.BaseTransport.sendPacket(BaseTransport.java:1 276)
at org.jivesoftware.wildfire.gateway.BaseTransport.start(BaseTransport.java:787)
at org.jivesoftware.wildfire.component.InternalComponentManager.addComponent(Inter nalComponentManager.java:108)
at org.jivesoftware.wildfire.gateway.TransportInstance.startInstance(TransportInst ance.java:134)
at org.jivesoftware.wildfire.gateway.GatewayPlugin.maybeStartService(GatewayPlugin .java:101)
at org.jivesoftware.wildfire.gateway.GatewayPlugin.initializePlugin(GatewayPlugin. java:69)
at org.jivesoftware.wildfire.container.PluginManager.loadPlugin(PluginManager.java :405)
at org.jivesoftware.wildfire.container.PluginManager.access$200(PluginManager.java :49)
at org.jivesoftware.wildfire.container.PluginManager$PluginMonitor.run(PluginManag er.java:905)
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
at java.util.concurrent.FutureTask$Sync.innerRunAndReset(Unknown Source)
at java.util.concurrent.FutureTask.runAndReset(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101 (Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodi c(Unknown Source)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(Unknow n Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)