sorry i didn't see an issue with this on the first pass.   the issue is that the uris that explicitly specify the default port will not compare equal to uris that omit the port entirely.

since you cannot know the default port at this level without becoming less generic, I think you need to pass in the default port for the uri to this method.   then if 0 >= port, you'd append the default port....   Perhaps this:

```java
fullAddrStr.append(':');
fullAddrStr.append(port > 0 ? port : defaultPort);
```