We have some code generation and it produced a syntax error. However, running 9.2.4 in production, the server gave a stack overflow tail recursion instead of “Cannot convert xs:integer to xs:date: 1970.” (like the GUI did).
Here was the error reported:
java.lang.RuntimeException: org.basex.core.BaseXException: Stack Overflow: Try tail recursion?
Here is the snippet of code that originally cause the ‘stack overflow’. The issue is the date is not in quotes.
function($endDate as xs:date?) as xs:Boolean
{
let $intervalBeginDate := xs:date(2019-09-30)
let $intervalEndDate := xs:date(2019-09-30)
return ($endDate ge $intervalBeginDate) and ($endDate le $intervalEndDate)
};
However, when I fix the code generation, everything is fine (see new code below). Just seems “strange” that this would cause the server to throw a ‘stack overflow’ error.
function($endDate as xs:date?) as xs:Boolean
{
let $intervalBeginDate := xs:date(‘2019-09-30’)
let $intervalEndDate := xs:date(‘2019-09-30’)
return ($endDate ge $intervalBeginDate) and ($endDate le $intervalEndDate)
};
Buddy