mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

Jean-Noel Rouvignac
12.51.2013 59b3651afdd66d25e0af3e4e885d422e2824ba5d
refs
author Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Thursday, December 12, 2013 14:51 +0100
committer Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Thursday, December 12, 2013 14:51 +0100
commit59b3651afdd66d25e0af3e4e885d422e2824ba5d
tree 1c7be3871cc8a1215b07d3c71d408665d15e058a tree | zip | gz
parent 53a4852439e9f33e7548702eb461b6bb1a56e422 view | diff
Fixing a test failure in Continuous Integration.
See the test failure stack trace at the bottom of this commit message.
ECLReplicationServerPreTest(), the very first test of ExternalChangeLogTest, expects external changelog to be disabled.
However, when GroupIdHandshakeTest was run before ExternalChangeLogTest but never removed ECL virtual attributes.
This led to the "lastChangeNumber" virtual attribute having an actual value of "0" while it was expected it would not exist on the returned entry.

Moved the total responsibility of maintaining the virtual attributes to VirtualAttributeConfigManager.
Ensured the ECL virtual attributes are removed on ECL shutdown.




VirtualAttributeConfigManager.java:
Do not call anymore the DirectoryServer.(de)registerVirtualAttribute() methods.
Added getVirtualAttributes(), register(), deregister(), getDummyDN().
In loadProvider(), removed the use of reflection.

DirectoryServer.java:
Removed virtualAttributes field.
Delegated getVirtualAttributes(), registerVirtualAttribute(), deregisterVirtualAttribute() calls to VirtualAttributeConfigManager.
Removed replaceVirtualAttribute().

ReplicationServer.java:
Renamed externalChangeLogWorkflowID field to eclWorkflowID and externalChangeLogWorkflowImpl field to eclWorkflowImpl.
Changed eclWorkflowImpl to use an AtomicReference.
In enableECL(), used AotmicReference.compareAndSet() to avoid multiple threads initializing at the same time.
Renamed enableECLVirtualAttr() to buildVirtualAttributeRule() + extracted the call to DirectoryServer.registerVirtualAttribute() outside.
In buildVirtualAttributeRule(), used Collections.* methods.
In shutdownECL(), deregister the virtual attributes added by the enableECL().





[testng] T E S T F A I L U R E ! ! !
[testng]
[testng] Failed Test: org.opends.server.replication.server.ExternalChangeLogTest#ECLReplicationServerPreTest
[testng] Failure Cause: java.lang.AssertionError: expected:<null> but was:<0>
[testng] org.testng.Assert.fail(Assert.java:84)
[testng] org.testng.Assert.failNotEquals(Assert.java:438)
[testng] org.testng.Assert.assertEquals(Assert.java:108)
[testng] org.testng.Assert.assertEquals(Assert.java:129)
[testng] org.testng.Assert.assertEquals(Assert.java:139)
[testng] org.opends.server.replication.server.ExternalChangeLogTest.ECLCompatTestLimits(ExternalChangeLogTest.java:2560)
[testng] org.opends.server.replication.server.ExternalChangeLogTest.ECLIsNotASupportedSuffix(ExternalChangeLogTest.java:407)
[testng] org.opends.server.replication.server.ExternalChangeLogTest.ECLReplicationServerPreTest(ExternalChangeLogTest.java:167)
3 files modified
313 ■■■■■ changed files
opendj-sdk/opends/src/server/org/opends/server/core/DirectoryServer.java 63 ●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/core/VirtualAttributeConfigManager.java 123 ●●●● diff | view | raw | blame | history
opendj-sdk/opends/src/server/org/opends/server/replication/server/ReplicationServer.java 127 ●●●● diff | view | raw | blame | history