Friday, October 31, 2008

Dev. tip of the day.

It is common in dev that we might have lot of versions of 3rd party jars where new APIs are introduced or deprecated with changing versions of jars. If you get unresolved symbol error from any 3rd party lib, one quick way to confirm if you are using correct jar is, do
strings filename.jar | egrep "missing symbol name"

If you do not find one, then jar is not what you expected. The API has changed.

For ex: To check if the symbol cloneConnectionManager is present in ldapjdk.jar or not, I have to do
strings /usr/share/lib/ldapjdk.jar | egrep "cloneConnectionManager"

If present, I will see symbols, else API is missing in the class that you had expected. It is quite possible that the symbol is present in a different class but not the one that you had expected. Check for it also.

No comments: