Hello Chord developers,
Not sure this will be of general interest to you. I have been using Chord for a while, and find Chord (sometimes) does not handle misconfiguration well. Specifically, if some options are set to wrong values and Chord exhibit undesired behaviors (i.e., crashing or silent failure), the error messages are absent or not clear enough to localize the misconfigured values. Even worse, sometimes, the incorrect option value is not checked immediately; instead, it propagates through the program and caused some "delayed" problem. This happens to me a few times. (For me, I have certain knowledge in the Chord src and can fix most configuration errors myself. But I speculate that without a clear error message, it might be difficult for users who are using Chord as blackbox to understand its error root cause).
Here is a simple example just for illustration purpose (I have a couple more examples, and would be happy to post them here if you think this issue is meaningful and should be addressed):
in Program.java
The following code checks whether the srcPathName (configuration option) is null or not, but does not check whether the path exists or not. If a non-existent path is specified as the configuration option value, a less user-friendly error message (a BadOperationException) will show up.
String srcPathName = Config.srcPathName;
if (srcPathName == null)
Messages.fatal(SRC_PATH_NOT_DEFINED);
String[] srcDirNames = srcPathName.split(Utils.PATH_SEPARATOR);
try {
....
java2HTML.setJavaDirectorySource(srcDirNames);
.....
} catch (Exception ex) {
throw new RuntimeException(ex);
}
Thanks.
-Sai