uima-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marshall Schor (JIRA)" <...@uima.apache.org>
Subject [jira] Commented: (UIMA-1839) String-subtype features can't be set to null?
Date Wed, 14 Jul 2010 22:18:50 GMT

    [ https://issues.apache.org/jira/browse/UIMA-1839?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12888573#action_12888573

Marshall Schor commented on UIMA-1839:

The purpose of a string subtype is to restrict the values to which a string can be set, to
a pre-specfied (in the type) set of allowed values.

I agree your example should not raise a null pointer exception.

I wonder, though, if the "allowed values" should include some way to specify "null" as an
allowed value?  

It's true that before the value is set, it has this value.  So, it would sort of seem OK to
allow setting it back to this value.  But I guess one could argue that the whole point of
the subtype is to specify restrictions on setting, and that therefore, having that functionality
include prohibiting setting it "back" to null might be valuable.

And, there is also the matter of specifying "null" as a special value, and not the string
n-u-l-l, if we allowed this in the set of allowed values.

I guess I feel this is a "corner case", and that no one has asked for "preventing" setting
the value to null, so I'm ok with either approach.

> String-subtype features can't be set to null?
> ---------------------------------------------
>                 Key: UIMA-1839
>                 URL: https://issues.apache.org/jira/browse/UIMA-1839
>             Project: UIMA
>          Issue Type: Bug
>          Components: Core Java Framework
>    Affects Versions: 2.3
>            Reporter: Adam Lally
>            Priority: Minor
> If you try to set a string-subtype feature to null, you get a NullPointerException:
> java.lang.NullPointerException
> 	at java.lang.String.compareTo(String.java:1167)
> 	at java.lang.String.compareTo(String.java:92)
> 	at java.util.Arrays.binarySearch0(Arrays.java:2001)
> 	at java.util.Arrays.binarySearch(Arrays.java:1943)
> 	at org.apache.uima.cas.impl.CASImpl.ll_setStringValue(CASImpl.java:3203)
> 	at org.apache.uima.cas.impl.FeatureStructureImpl.setStringValue(FeatureStructureImpl.java:130)
> The documentation doesn't specifically address whether this is allowed, but my intuition
was that it should be.  For one thing, a string-subtype feature can have the value null when
it is uninitialized, so why shouldn't I be able to explicitly set it to null?
> A simple way to replicate is to add the line
>     fs.setStringValue(stringSetFeat, null);
> to the test case method StringSubtypeTest.testCas()

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

View raw message