This is something I just found out, and I figured I'd blog about it for those that might come across this in the future.
I'm writing some code in a project (JZBot specifically, http://jzbot.googlecode.com) that uses java.lang.reflect.Proxy. At one point, I was calling a method on a proxy instance, and it was throwing a NullPointerException. The weird thing about this was that the NullPointerException was being thrown from within the proxy instance itself, not from the InvocationHandler that it is supposed to call. Other methods on the proxy worked, indicating that there wasn't some error with the invocation handler somehow being set to null.
Eventually, I found the problem: I had declared the method on the interface that the proxy implemented to return a boolean, but the invocation handler was returning null. The auto-unboxing that was being done by the proxy instance internally was messing things up. I changed the method's return type to void (which is what it should have been), and everything worked.
This is yet another example of where to watch out for autoboxing and unboxing. Admittedly, it would be more helpful if the NPE had a message stating something like, for example, "null can't be unboxed to a boolean", which would most likely have saved me quite a bit of time. Oh well.
10 comments:
Thanks for this, I found it very helpful! (In my case, the method was hashCode, so the conversion was from Integer to int rather than Boolean to boolean, but, same idea.)
Thanks for posting this!
Thanks for posting this! I had the same problem and was wondering and wondering... ;-)
Thank you :)
Thanks for posting this blog entry. I had a similar problem that I was banging my head against. I couldn't change the method signature to void, in my case, but returning a proper default value (0 or false) instead of null fixed the problem.
Thank you for your sharing and I want to more updates for my research..
Appium Training in Chennai
Appium Certification in Chennai
Pega Training in Chennai
Tableau Training in Chennai
Advanced Excel Training in Chennai
Spark Training in Chennai
Primavera Training in Chennai
Unix Training in Chennai
Power BI Training in Chennai
Corporate Training in Chennai
Placement Training in Chennai
Good post. I learn something totally new and challenging on blog IS stumble upon everyday. It’s always helpful to read through articles from other authors and use a little something from their sites. Turkey tourism.You can check all Turkey tourism Guidelines Turkey through Turkey e-Visa website.
This is a very useful article… India etv visa fee depends on your visa type and your nationality
I appreciate your work... Thanks for sharing... There is good news for international travelers. The Indian government restored the Indian tourism sector and also India tourist visa for the long term, which means I have more time to explore India.
Hii friends, I wanted to write a little Info related to Visa. Are you interested in traveling to any country? Yes, you can apply for a visa online. You can fill out your visa application form online within 5 to 10 minutes via our Visacent website. We offer visas to citizens of over 190 countries. You can read more info about visas via our website.
Post a Comment