[ 
https://issues.apache.org/jira/browse/SOLR-1591?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12799784#action_12799784
 ] 

Chris A. Mattmann commented on SOLR-1591:
-----------------------------------------

{quote}
shrugs - the example I gave was meant to show how defining the function to work 
for "null" can simplify code that calls the function. What didn't you 
understand about that?
{quote}

Well I understood your comment I was just confused as to how it's any better I 
guess. You showed this as a simplification that having the silently ignored 
null allows:

{code}
writeAttr("foo", map.get("foo"));
writeAttr("foo", map.get("bar"));
{code}

Agreed, it's a bit prettier than this:

{code}
String fooVal = map.get("foo");
if (fooVal  != null) {
  writeAttr("foo", fooVal);
}

String barVal= map.get("bar");
if (barVal!= null) {
  writeAttr("bar", barVal);
}
...
{code}

But what about this?

{code}
if(map.get("foo")) != null writeAttr("foo", map.get("foo"));
if(map.get("bar")) != null writeAttr("bar", map.get("bar"));
{code}

{quote}
No, not if the function is well defined for a null value.
{quote}

It can be as well defined as you'd like but in the end it's a no-op and a 
waste, and more importantly it's a silent waste, right?

{quote}
And if we moved the null check to the callers, I'd argue that the null check 
should be entirely left out of writeAttr - skip the extra code and let the NPE 
happen naturally.
{quote}

+1 to this. What do you think?

Cheers,
Chris




> XMLWriter#writeAttr silently ignores null attribute values
> ----------------------------------------------------------
>
>                 Key: SOLR-1591
>                 URL: https://issues.apache.org/jira/browse/SOLR-1591
>             Project: Solr
>          Issue Type: Bug
>    Affects Versions: 1.4
>         Environment: My local MacBook pro laptop.
>            Reporter: Chris A. Mattmann
>            Priority: Minor
>             Fix For: 1.5
>
>         Attachments: SOLR-1591.Mattmann.112209.patch.txt
>
>
> XMLWriter#writeAttr checks for val == null, and if so, does nothing. Instead 
> of doing nothing, it could leverage its method signature, and throw an 
> IOException declaring that the value provided is null. Patch, attached.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to