I'd need to review the code to determine the why of JSONObject.NULL.  I'm
at a client today (doing Clojure and AngularJS!) so I can't really divert.


On Tue, Apr 16, 2013 at 6:36 PM, Tony Nelson <tnel...@starpoint.com> wrote:

> So wouldn't it be DRY to convert null to JSONObject.NULL in put()?
>
> Sorry so terse on iPhone @lunch.
>
> On Apr 16, 2013, at 1:28 PM, "Howard Lewis Ship" <hls...@gmail.com> wrote:
>
> > Obviously it would blow up if you ran with -ea
> >
> > The docs specify the acceptable values for put().
> >
> > You don't use a null, you use JSONObject.NULL.
> >
> > I can't remember why it is done this way; it may have simply been done
> that
> > way in the original JSON.org source that the Tapestry code is evolved
> from.
> >
> > Glad to see you are using Spock!
> >
> >
> > On Tue, Apr 16, 2013 at 5:37 PM, Tony Nelson <tnel...@starpoint.com>
> wrote:
> >
> >> I ran into a problem with JSONArray today that I think deserves a bug
> >> report, but I'm not exactly sure what the correct/expected behavior
> should
> >> be, so I'm not sure how to file the bug.
> >>
> >> This test case demonstrates the issue:
> >>
> >>    def "test add null to array"() {
> >>        setup:
> >>        String n = null
> >>        JSONArray obj = new JSONArray()
> >>        obj.put(n)
> >>
> >>        when:
> >>        String result = obj.toString()
> >>
> >>        then:
> >>        "[]" == result
> >>    }
> >>
> >>
> >> I think I might expect the actual result to be [ null ], but you don't
> get
> >> that either, what you do get is a NULL pointer exception.
> >>
> >> java.lang.NullPointerException
> >>        at
> >> org.apache.tapestry5.json.JSONObject.printValue(JSONObject.java:887)
> >>        at org.apache.tapestry5.json.JSONArray.print(JSONArray.java:436)
> >>        at
> >>
> org.apache.tapestry5.json.JSONCollection.toString(JSONCollection.java:47)
> >>        at com.starpoint.business.BusLogic1Test.test print empty
> >> array(BusLogic1Test.groovy:35)
> >>
> >> Looking at the code, it would appear that you don't want null to be a
> >> valid value (though I would argue it's perfectly fine),
> >>
> >>    public JSONArray put(Object value)
> >>    {
> >>        assert value != null;
> >>
> >>        JSONObject.testValidity(value);
> >>
> >>        list.add(value);
> >>
> >>        return this;
> >>    }
> >>
> >>
> >> I don't run with assertions enabled (who does??), but apparently
> >> JSONObject.testValidity passes just fine. You don't run into a problem
> >> until you actually try to print the array (or return it as an ajax
> >> response).
> >>
> >> What is the correct behavior?
> >> Tony
> >>
> >> Since 1982, Starpoint Solutions has been a trusted source of human
> capital
> >> and solutions. We are committed to our clients, employees, environment,
> >> community and social concerns.  We foster an inclusive culture based on
> >> trust, respect, honesty and solid performance. Learn more about
> Starpoint
> >> and our social responsibility at
> >> http://www.starpoint.com/social_responsibility
> >>
> >> This email message from Starpoint Solutions LLC is for the sole use of
> >> the intended recipient(s) and may contain confidential and privileged
> >> information.  Any unauthorized review, use, disclosure or distribution
> is
> >> prohibited.  If you are not the intended recipient, please contact the
> >> sender by reply email and destroy all copies of the original message.
> >> Opinions, conclusions and other information in this message that do not
> >> relate to the official business of Starpoint Solutions shall be
> understood
> >> as neither given nor endorsed by it.
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> >> For additional commands, e-mail: users-h...@tapestry.apache.org
> >
> >
> > --
> > 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
>
> Since 1982, Starpoint Solutions has been a trusted source of human capital
> and solutions. We are committed to our clients, employees, environment,
> community and social concerns.  We foster an inclusive culture based on
> trust, respect, honesty and solid performance. Learn more about Starpoint
> and our social responsibility at
> http://www.starpoint.com/social_responsibility
>
> This email message from Starpoint Solutions LLC is for the sole use of
>  the intended recipient(s) and may contain confidential and privileged
>  information.  Any unauthorized review, use, disclosure or distribution is
> prohibited.  If you are not the intended recipient, please contact the
> sender by reply email and destroy all copies of the original message.
>  Opinions, conclusions and other information in this message that do not
> relate to the official business of Starpoint Solutions shall be understood
> as neither given nor endorsed by it.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscr...@tapestry.apache.org
> For additional commands, e-mail: users-h...@tapestry.apache.org
>
>


-- 
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

Reply via email to