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