[ 
https://issues.apache.org/jira/browse/JENA-839?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andy Seaborne updated JENA-839:
-------------------------------
    Description: 
E_Regex eval verifies the argument is a string using: 
{noformat}
Node arg = NodeFunctions.checkAndGetStringLiteral("REGEX", args.get(0)) ;
{noformat}
 NodeFunctions.checkAndGetStringLiteral verifies that if the nodevalue is not 
null and is an XSDstring by the following statement:

{noformat}
 if ( dt != null && !dt.equals(XSDDatatype.XSDstring) )
            throw new ExprEvalException(label + ": Not a string literal: " + 
nv) ;
{noformat}

this means that other string types (e.g. XSDnormalizedString) fail.

I believe that the check should be to check that dt is an instanceof 
XSDBaseStringType.

I am looking for comment before making the change.


  was:
E_Regex eval verifies the argument is a string using: 

Node arg = NodeFunctions.checkAndGetStringLiteral("REGEX", args.get(0)) ;

 NodeFunctions.checkAndGetStringLiteral verifies that if the nodevalue is not 
null and is an XSDstring by the following statement:

 if ( dt != null && !dt.equals(XSDDatatype.XSDstring) )
            throw new ExprEvalException(label + ": Not a string literal: " + 
nv) ;

this means that other string types (e.g. XSDnormalizedString) fail.

I believe that the check should be to check that dt is an instanceof 
XSDBaseStringType.

I am looking for comment before making the change.



> E_Regex only works with XSDstring.
> ----------------------------------
>
>                 Key: JENA-839
>                 URL: https://issues.apache.org/jira/browse/JENA-839
>             Project: Apache Jena
>          Issue Type: Bug
>          Components: ARQ
>    Affects Versions: Jena 2.12.1
>         Environment: Linux
>            Reporter: Claude Warren
>            Assignee: Claude Warren
>
> E_Regex eval verifies the argument is a string using: 
> {noformat}
> Node arg = NodeFunctions.checkAndGetStringLiteral("REGEX", args.get(0)) ;
> {noformat}
>  NodeFunctions.checkAndGetStringLiteral verifies that if the nodevalue is not 
> null and is an XSDstring by the following statement:
> {noformat}
>  if ( dt != null && !dt.equals(XSDDatatype.XSDstring) )
>             throw new ExprEvalException(label + ": Not a string literal: " + 
> nv) ;
> {noformat}
> this means that other string types (e.g. XSDnormalizedString) fail.
> I believe that the check should be to check that dt is an instanceof 
> XSDBaseStringType.
> I am looking for comment before making the change.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to