Wow, just when you think Java can't be any more broken, the fact that
assertions are disabled by default hits you.

Well, we could either document that you want to generally developer
with assertions enabled, or we should bring back our old friend, the
Defense static class.

On Thu, Feb 23, 2012 at 4:10 PM, Robert Zeigler
<[email protected]> wrote:
> Hm. Just noticed this:
>
> BeanModelSourceImpl.java:
> ...
> public <T> BeanModel<T> create(Class<T> beanClass, boolean 
> filterReadOnlyProperties, Messages messages)
> {
>    assert beanClass != null;
>    assert messages != null;
> ...
>
>
> Why are we using assertions to check the arguments? Even in java 6,assertions 
> are disabled by default at runtime, and according to:
> http://docs.oracle.com/javase/1.5.0/docs/guide/language/assert.html:
>
> "Do not use assertions for argument checking in public methods.
> Argument checking is typically part of the published specifications (or 
> contract) of a method, and these specifications must be obeyed whether 
> assertions are enabled or disabled. Another problem with using assertions for 
> argument checking is that erroneous arguments should result in an appropriate 
> runtime exception (such as IllegalArgumentException, 
> IndexOutOfBoundsException, orNullPointerException). An assertion failure will 
> not throw an appropriate exception."
>
> This just tripped up a new user; they received an NPE in 
> TapestryInternalUtils.defaultLabel due to the message catalog being null.
>
> Robert
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>



-- 
Howard M. Lewis Ship

Creator of Apache Tapestry

The source for Tapestry training, mentoring and support. Contact me to
learn how I can get you up and productive in Tapestry fast!

(971) 678-5210
http://howardlewisship.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to