This might be very obvious to a lot of people, but here’'s a small tip for those that are using the JDBC groups provider.
When it runs the SQL to get the list of groups for a user, it inserts the full user JID instead of just the node (username). For our setup we’‘re using the data from our main application to do all the authentication and shared rosters (groups), so I was scratching my head for a while trying to figure out why I wasn’‘t getting a group list (and got to the point of debugging every SQL statement being run on the database). To fix this you need to go into the JDBCGroupsProvider.java file and change line 285 (in the getGroupNames method) from user.toString() to user.getNode(), so that’‘s it’'s just inserting the username, not the full JID.