During review of fix for
OPENDJ-6341, It was noticed that
To be honest, this "routing table is empty" message is pretty obscure. Essentially it means that the destination server(s) cannot be reached. Providing any helpful feedback is made harder because the routing logic is split between this method, org.opends.server.replication.server.ReplicationServerDomain#process() and org.opends.server.replication.server.ReplicationServerDomain#getDestinationServers().
Would it make it easier if getDestinationServers() and process() were merged into a single method. Once the code is inlined/merged it should be possible to generate more meaningful error messages based on the conditional logic in getDestinationServers().
At the very least, the two messages ERR_UNROUTABLE_MESSAGE_BECAUSE_ROUTING_TABLE_IS_EMPTY and ERR_NO_REACHABLE_PEER_IN_THE_DOMAIN should be merged and made more helpful to end users who have no idea what a routing table is.
a couple of items were mentioned:
- Consider refactoring code to make "routing table is empty" message more helpful to end users.
- Combine composite error message into a single message and reword so that it is helpful to end users.
The tricky part is that ERR_NO_REACHABLE_PEER_IN_THE_DOMAIN is used by dsreplication to parse errors reported by tasks, if it even works...