David Gibbs skrev:
Joe Pluta wrote:
And the worst case is developers use third-party routines that they
don't really understand. Open source in particular can bite you in
this regard, although at least with open source you can go in and
find the issues, but that of course requires that you learn the
intricacies of the open source code, which defeats at least part of
the purpose of using third-party packages in the first place :).

Add to that the 3rd party packages that are poorly or totally not documented.
There have been a number of times when I get a NPE deep inside a 3rd party class with no explanation of why it's happening.

Often, when I encounter this situation, I end up decompiling the libraries so I can figure out what is happening (JAD is my best friend sometimes). I'm SURE I'm violating some licensing agreement when I do this, but if they don't want me to decompile the code, they should provide better documentation.

I have made it a habit to download the source with any third party library I use, and tell Eclipse to use it as the source archive for the jar. Then it works like any other of your own source except you cannot accidentially change it, and is an immense help when debugging. I have used it a lot with jt400.jar

Only the binary jar is deployed, the source stay on the development machine.

I loathe null pointer exceptions too - and it should be programatically possible to specifiy that a given method should never return null :) Many of my methods have explicit null checks and then throw a RuntimeException("foo==null") if so. Originally I used NullPointerExceptions, but have ceased as I'd like NPE's to be indication of something severely bad (instead of just a caller violating the contract).


As an Amazon Associate we earn from qualifying purchases.

This thread ...

Follow-Ups:
Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.