Some methods (GET, HEAD, and PUT) perform path encoding, while all other methods do not. The constrcutor for the encoding methods looks like: super(URLUtil.URLEncode(path, "UTF-8")); while all other methods look like: super (path); All methods should be either encoded or decoded in order to ensure that double encoding doesn't take place. This problem will only be visible when attempting to operate on resource which require encoding (i.e. there is a space in the name). Given that list() returns the child names unencoded, I would think it would make the most sense to always expect unencoded paths.
That's why these classes are marked as deprecated. Note that their superclasses (from Commons-Httpclient), that you should use instead, don't perform any additional encoding.
Your right, I hadn't noticed those methods were deprecated.