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

Jean-Noël Rouvignac
22.47.2016 b1b48de3863ef41912751eb3a276ac233dc739e9
OPENDJ-3262 Replication: dsreplication enable raises IllegalArgumentException

Do not try to create a HostPort object when the port is known to be invalid.

ReplicationCliMain.java:
Extracted two getReplicationServerHostPort() methods.

ServerDescriptor.java:
Inlined getReplicationServer() which has no added value over HostPort constructor.
2 files modified
49 ■■■■■ changed files
opendj-server-legacy/src/main/java/org/opends/admin/ads/ServerDescriptor.java 15 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliMain.java 34 ●●●●● patch | view | raw | blame | history
opendj-server-legacy/src/main/java/org/opends/admin/ads/ServerDescriptor.java
@@ -202,7 +202,7 @@
   */
  public HostPort getReplicationServerHostPort()
  {
    return isReplicationServer() ? getReplicationServer(getHostName(), getReplicationServerPort()) : null;
    return isReplicationServer() ? new HostPort(getHostName(), getReplicationServerPort()) : null;
  }
  /**
@@ -1120,19 +1120,6 @@
  }
  /**
   * Returns the replication server normalized String for a given host name
   * and replication port.
   * @param hostName the host name.
   * @param replicationPort the replication port.
   * @return the replication server normalized String for a given host name
   * and replication port.
   */
  public static HostPort getReplicationServer(String hostName, int replicationPort)
  {
    return new HostPort(hostName, replicationPort);
  }
  /**
   * Returns a representation of a base DN for a set of servers.
   * @param baseDN the base DN.
   * @param servers the servers.
opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliMain.java
@@ -5041,7 +5041,7 @@
    }
    else if (serverData.configureReplicationServer())
    {
      twoReplServers.add(getReplicationServer(conn.getHostPort().getHost(), serverData.getReplicationPort()));
      twoReplServers.add(new HostPort(conn.getHostPort().getHost(), serverData.getReplicationPort()));
    }
  }
@@ -8432,9 +8432,8 @@
      ConnectionWrapper connDomain, ConnectionWrapper connOther,
      Set<DN> availableSuffixes, Set<DN> alreadyReplicatedSuffixes)
  {
    int replicationPort = getReplicationPort(connOther);
    boolean isReplicationServerConfigured = replicationPort != -1;
    HostPort replicationServer = getReplicationServer(connOther.getHostPort().getHost(), replicationPort);
    HostPort replicationServer = getReplicationServerHostPort(connOther);
    boolean isReplicationServerConfigured = replicationServer != null;
    Collection<ReplicaDescriptor> replicas = getReplicas(connDomain);
    for (ReplicaDescriptor replica : replicas)
@@ -8472,13 +8471,11 @@
      ConnectionWrapper conn1, ConnectionWrapper conn2,
      Set<DN> availableSuffixes, Set<DN> alreadyReplicatedSuffixes)
  {
    int replicationPort1 = getReplicationPort(conn1);
    boolean isReplicationServer1Configured = replicationPort1 != -1;
    HostPort replicationServer1 = getReplicationServer(conn1.getHostPort().getHost(), replicationPort1);
    HostPort replicationServer1 = getReplicationServerHostPort(conn1);
    boolean isReplicationServer1Configured = replicationServer1 != null;
    int replicationPort2 = getReplicationPort(conn2);
    boolean isReplicationServer2Configured = replicationPort2 != -1;
    HostPort replicationServer2 = getReplicationServer(conn2.getHostPort().getHost(), replicationPort2);
    HostPort replicationServer2 = getReplicationServerHostPort(conn2);
    boolean isReplicationServer2Configured = replicationServer2 != null;
    TopologyCache cache1 = isReplicationServer1Configured ? createTopologyCache(conn1) : null;
    TopologyCache cache2 = isReplicationServer2Configured ? createTopologyCache(conn2) : null;
@@ -8604,10 +8601,8 @@
    createTopologyCache(adsCtx1, uData, suffixes);
    createTopologyCache(adsCtx2, uData, suffixes);
    int repPort1 = getReplicationPort(adsCtx1.getConnection());
    HostPort repServer1 = getReplicationServer(server1.getHostName(), repPort1);
    int repPort2 = getReplicationPort(adsCtx2.getConnection());
    HostPort repServer2 = getReplicationServer(server2.getHostName(), repPort2);
    HostPort repServer1 = getReplicationServerHostPort(adsCtx1.getConnection(), server1.getHostName());
    HostPort repServer2 = getReplicationServerHostPort(adsCtx2.getConnection(), server2.getHostName());
    for (DN baseDN : uData.getBaseDNs())
    {
      int nReplicationServers = 0;
@@ -8651,6 +8646,17 @@
    }
  }
  private HostPort getReplicationServerHostPort(ConnectionWrapper conn)
  {
    return getReplicationServerHostPort(conn, conn.getHostPort().getHost());
  }
  private HostPort getReplicationServerHostPort(ConnectionWrapper conn, String hostName)
  {
    int replPort = getReplicationPort(conn);
    return replPort != -1 ? new HostPort(hostName, replPort) : null;
  }
  private void createTopologyCache(ADSContext adsCtx, ReplicationUserData uData, Set<SuffixDescriptor> suffixes)
  {
    try