Im trying to reproduce this, and Im not having much luck when I setup a test case similar to yours, when I run it, it doesnt delete and add...
If you dont mind, can you use the latest Grouper API on the 2.1 branch from subversion (or use the snapshot build link below)?
Change the filter so it only syncs one or two small groups instead of the full list. e.g.
Cleanse anything that is sensitive (ldap server name and login name?) and please send it to me (no need to put on list)
2012-08-07 00:53:09,804: [main] DEBUG GrouperLoaderConfig.retrieveLdapProfile(373) - - LDAP config for server id: personLdap: GrouperLoaderLdapServer [batchSize=-1, countLimit=-1, driver=null, expirationTime=-1, maxPoolSize=-1, minPoolSize=-1, pass=XXXXX,
pruneTimerPeriod=-1, saslAuthorizationId=, saslRealm=, timeLimit=-1, timeout=-1, tls=false, url="ldaps://server.school.edu:636/dc=school,dc=edu," user=uid=user/something.school.edu,ou=entities,dc=school,dc=edu, validateOnCheckIn=false, validateOnCheckOut=true,
validatePeriodically=false, validateTimerPeriod=-1]
2012-08-07 00:53:09,807: [main] DEBUG GrouperLoaderResultset$1.callback(582) - - Found 2 results, (6 sub-results) for serverId: personLdap, searchDn: ou=groups, filter: '(|(cn=test:testGroup)(cn=test:ldaptesting:test1)(cn=test:testEmptyGroup))', returning
subject attribute: hasMember, some results: {anotherStem:groups:test:ldapTesting:test1=[netmon], anotherStem:groups:test:testGroup=[convery, ...
2012-08-07 00:53:09,817: [main] DEBUG GrouperLoaderResultset.convertToSubjectIdIfNeeded(955) - - Converted subject id from 'netmon' to 'netmon' based on subjectExpression: '${loaderLdapElUtils.convertDnToSpecificValueTest(subjectId, 'convery', 'test:convery')}'
2012-08-07 00:53:09,823: [main] DEBUG GrouperLoaderResultset.convertToSubjectIdIfNeeded(955) - - Converted subject id from 'convery' to '049c99123f5f45428b973062e5aae6f5' based on subjectExpression: '${loaderLdapElUtils.convertDnToSpecificValueTest(subjectId,
'convery', 'test:convery')}'
2012-08-07 00:53:09,825: [main] DEBUG GrouperLoaderResultset.convertToSubjectIdIfNeeded(955) - - Converted subject id from 'choate' to 'choate' based on subjectExpression: '${loaderLdapElUtils.convertDnToSpecificValueTest(subjectId, 'convery', 'test:convery')}'
2012-08-07 00:53:09,826: [main] DEBUG GrouperLoaderResultset.convertToSubjectIdIfNeeded(955) - - Converted subject id from 'mchyzer' to 'mchyzer' based on subjectExpression: '${loaderLdapElUtils.convertDnToSpecificValueTest(subjectId, 'convery', 'test:convery')}'
2012-08-07 00:53:09,828: [main] DEBUG GrouperLoaderResultset.convertToSubjectIdIfNeeded(955) - - Converted subject id from 'bwh' to 'bwh' based on subjectExpression: '${loaderLdapElUtils.convertDnToSpecificValueTest(subjectId, 'convery', 'test:convery')}'
2012-08-07 00:53:09,829: [main] DEBUG GrouperLoaderResultset.convertToSubjectIdIfNeeded(955) - - Converted subject id from 'harveycg' to 'harveycg' based on subjectExpression: '${loaderLdapElUtils.convertDnToSpecificValueTest(subjectId, 'convery', 'test:convery')}'
2012-08-07 00:53:09,831: [main] DEBUG GrouperLoaderType$7.runJob(862) - - anotherStem:groupListLdapGroup: start syncing membership
2012-08-07 00:53:09,831: [main] DEBUG GrouperLoaderType.syncGroupList(1114) - - anotherStem:groupListLdapGroup: found 6 members overall
2012-08-07 00:53:09,831: [main] DEBUG GrouperLoaderType.syncGroupList(1124) - - anotherStem:groupListLdapGroup: syncing membership for 2 groups
2012-08-07 00:53:09,831: [main] DEBUG GrouperLoaderType.syncGroupList(1340) - - anotherStem:groupListLdapGroup: syncing membership for anotherStem:groups:test:ldapTesting:test1 1 out of 2 groups
2012-08-07 00:53:09,872: [main] DEBUG GrouperLoaderType.syncOneGroupMembership(1926) - - anotherStem:groups:test:ldapTesting:test1 start syncing membership
2012-08-07 00:53:09,873: [main] DEBUG GrouperLoaderType.syncOneGroupMembership(1942) - - anotherStem:groups:test:ldapTesting:test1 syncing 1 rows
2012-08-07 00:53:09,937: [main] DEBUG GrouperLoaderType.syncOneGroupMembership(1960) - - anotherStem:groups:test:ldapTesting:test1: saving group if necessary, result type: NO_CHANGE
2012-08-07 00:53:09,937: [main] DEBUG GrouperLoaderType.syncOneGroupMembership(2055) - - Done assigning privilege to related groups: anotherStem:groups:test:ldapTesting:test1
2012-08-07 00:53:09,963: [main] INFO GrouperLoaderType.syncOneGroupMembership(2301) - - anotherStem:groups:test:ldapTesting:test1 done syncing membership, processed 1 records. Total members: 1, inserts: 0, deletes: 0
2012-08-07 00:53:10,048: [main] DEBUG GrouperLoaderType.syncGroupList(1340) - - anotherStem:groupListLdapGroup: syncing membership for anotherStem:groups:test:testGroup 2 out of 2 groups
2012-08-07 00:53:10,056: [main] DEBUG GrouperLoaderType.syncOneGroupMembership(1926) - - anotherStem:groups:test:testGroup start syncing membership
2012-08-07 00:53:10,056: [main] DEBUG GrouperLoaderType.syncOneGroupMembership(1942) - - anotherStem:groups:test:testGroup syncing 5 rows
2012-08-07 00:53:10,063: [main] DEBUG GrouperLoaderType.syncOneGroupMembership(1960) - - anotherStem:groups:test:testGroup: saving group if necessary, result type: NO_CHANGE
2012-08-07 00:53:10,063: [main] DEBUG GrouperLoaderType.syncOneGroupMembership(2055) - - Done assigning privilege to related groups: anotherStem:groups:test:testGroup
2012-08-07 00:53:10,107: [main] DEBUG GrouperLoaderType.syncOneGroupMembership(2149) - - anotherStem:groups:test:testGroup will add subject to group: Penn person/bwh, 1 of 1 subjects
2012-08-07 00:53:10,107: [main] DEBUG GrouperLoaderType.syncOneGroupMembership(2182) - - anotherStem:groups:test:testGroup will remove subject from group: jdbc/test.subject.1, 1 of 1 members
2012-08-07 00:53:10,477: [main] DEBUG GrouperLoaderType$10.callback(2217) - - Group: anotherStem:groups:test:testGroup delete Subject id: test.subject.1, sourceId: jdbc, alreadyDeleted? false
2012-08-07 00:53:10,531: [main] DEBUG GrouperLoaderType$10.callback(2256) - - Group: anotherStem:groups:test:testGroup add Subject id: bwh, sourceId: pennperson, alreadyAdded: false
2012-08-07 00:53:10,531: [main] INFO GrouperLoaderType.syncOneGroupMembership(2301) - - anotherStem:groups:test:testGroup done syncing membership, processed 6 records. Total members: 5, inserts: 1, deletes: 1
2012-08-07 00:53:10,576: [main] DEBUG GrouperLoaderType.syncGroupList(1433) - - anotherStem:groupListLdapGroup: done syncing membership