27 Mar, 2014

1 commit


26 Mar, 2014

1 commit


25 Mar, 2014

1 commit


21 Mar, 2014

1 commit


14 Mar, 2014

2 commits


10 Mar, 2014

1 commit


06 Mar, 2014

1 commit


05 Mar, 2014

1 commit


04 Mar, 2014

1 commit


24 Feb, 2014

1 commit


20 Feb, 2014

2 commits


19 Feb, 2014

2 commits

  • 
    Improved design for Replication Topology
    
    
    ReplicationBroker.java + *Test.java:
    Extracted the Topology class to encapsulate the dsList and replicationServerInfos fields + atomically set it via an AtomicReference + moved setLocallyConfiguredFlag(), isSameReplicationServerUrl(), computeConnectedDSs() to Topology class.
    Created methods computeNewTopology() and topologyChange() to compute and set the new topology.
    Removed generationID instance variable duplicated with the one from ReplicationDomain + updated ctor and setGenerationID().
    Improved debugging messages.
    Renamed getDsList() to getReplicaInfos() + changed return type from List<DSInfo> to Map<Integer, DSInfo>.
    Renamed getRsList() to getRsInfos().
    Extracted method toRSInfos().
    
    ReplicationBrokerTest.java: ADDED
    Added to test new ReplicationBroker.Topology class.
    
    
    DSInfo.java:
    Changed equals(Set<String>, Set<String>) to equals(Object, Object).
    In toString(), hid the assured fields if assured replication is off.
    
    RSInfo.java:
    Renamed fields id and serverUrl to rsServerId and rsServerURL.
    In toString(), relied on the compiler to generate the String.
    
    
    TopologyMsg.java:
    Renamed fields dsList and rsList to replicaInfos and rsInfos.
    Renamed getDsList() to getReplicaInfos() + changed return type from List<DSInfo> to Map<Integer, DSInfo>.
    Renamed getRsList() to getRsInfos().
    Extracted methods readStrings() and writeStrings().
    Code cleanup
    Used javadocs
    
    
    ReplicationDomain.java, replication*.properties:
    Extracted class ECLIncludes to replace eclIncludesLock, eclIncludesByServer, eclIncludesAllServers, eclIncludesForDeletesByServer, eclIncludesForDeletesAllServers + moved setEclIncludes() implementation to this class + removed synchronized blocks from all the getters.
    Added baseDN to ERR_INIT_NO_SUCCESS_START_FROM_SERVERS.
    Inlined initializeRemote().
    Removed unused initializeFromRemote().
    Reduced methods visibility.
    Renamed getReplicaList() to getReplicaInfos() + changed return type from List<DSInfo> to Map<Integer, DSInfo>.
    Renamed getRsList() to getRsInfos().
    In initializeRemote(), waitForRemoteEndOfInit(), isRemoteDSConnected() and getProtocolVersion(), simplified code.
    
    *.java:
    Consequence of the changes above.
    Simplified code in a number of places, particularly in the tests.
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@10405 41b1ffd8-f28e-4786-ab96-9950f0a78031
    JnRouvignac
     
  • git-svn-id: https://svn.forgerock.org/opendj/trunk@10402 41b1ffd8-f28e-4786-ab96-9950f0a78031
    cjr
     

12 Feb, 2014

1 commit


11 Feb, 2014

1 commit


10 Feb, 2014

3 commits


07 Feb, 2014

1 commit


05 Feb, 2014

1 commit


04 Feb, 2014

1 commit


03 Feb, 2014

2 commits


31 Jan, 2014

2 commits


30 Jan, 2014

1 commit


28 Jan, 2014

3 commits

  • 
    replication*.properties:
    Added exception stacktraces to NOTICE_READER_EXCEPTION_53.
    
    ServerReader.java:
    In run(), logged the stacktrace when calling logError(). Removed redundant call to logException() which logged to debug logger.
    
    
    Session.java:
    Extracted method read().
    
    
    StaticUtils.java:
    In stackTraceToSingleLineString(), when this is not a debug build, added the exception type at the start of the message.
    
    StaticUtilsTest.java: ADDED
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@10202 41b1ffd8-f28e-4786-ab96-9950f0a78031
    JnRouvignac
     
  • Code review: Matthew Swift
    
    Caused by r10049.
    Problem is down to the initialization sequence:
    1. thread 1 - MultimasterReplication.initializeSynchronizationProvider()
    1.1. it creates the ReplicationServerListener
    1.1.1. the ReplicationServerListener in turn creates the ReplicationServer
    1.1.1.1. the ReplicationServer in turn creates the ChangelogDB
    1.1.1.1.1. the ChangelogDB in turn creates the ChangeNumberIndexer thread and STARTs it
    1.1.1.1.1. the ChangelogDB starts the ChangeNumberIndexer thread
    1.2. it proceeds with creating the LDAPReplicationDomain objects one by one
    2. thread 2 - ChangeNumberIndexer.run()
    2.1. it calls ChangeNumberIndexer.initialize()
    2.1.1. ChangeNumberIndexer.initialize() calls MultimasterReplication.isECLEnabledDomain(baseDN)
    
    Steps 1.2. and 2.1.1. are running concurrently.
    If 2.1.1. is run before 1.2. is completed, In ChangeNumberIndexer.initialize():
    1) MultimasterReplication.isECLEnabledDomain(baseDN) returns false, hence a cursor to the relevant replica DBs is not created
    2) then the call to nextChangeForInsertDBCursor.getRecord() returns null, later throwing a NullPointerException because the ChangeNumberIndexer thread is in an illegal state: it was expecting to find an UpdateMsg with the correct CSN stamped on it.
    
    
    
    MultimasterReplication.java:
    Added State enum + state instance member to tell whether MultimasterReplication is ready for work.
    Removed isRegistered instance member superseded by state instance member.
    In isECLEnabledDomain(), completeSynchronizationProvider() and finalizeSynchronizationProvider(), deal with thread waits.
    
    DomainFakeCfg.java:
    Implemented toString().
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@10200 41b1ffd8-f28e-4786-ab96-9950f0a78031
    JnRouvignac
     
  • git-svn-id: https://svn.forgerock.org/opendj/trunk@10196 41b1ffd8-f28e-4786-ab96-9950f0a78031
    ludo
     

25 Jan, 2014

1 commit


23 Jan, 2014

1 commit


17 Jan, 2014

3 commits


13 Jan, 2014

3 commits


09 Jan, 2014

1 commit

  • ReplicationDomain.java:
    Made ieContext private and used an AtomicReference for it + In acquireIEContext() and releaseIEContext(), removed now useless synchronized keyword.
    In acquireIEContext(), returned the created ieContext + changed all client code to assign a variable from the result.
    
    ReplicationDomainTest.java:
    Avoid NPE in case the ieContext is released before the asserts.
    Called ReplicationDomain.getImportExportContext().
    
    git-svn-id: https://svn.forgerock.org/opendj/trunk@10113 41b1ffd8-f28e-4786-ab96-9950f0a78031
    JnRouvignac