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