Environment
Issue Description
I'm encountering a critical error in our application after upgrading from SmartClient 12.1 to 15.0d. The application is throwing a "Maximum call stack size exceeded" error during XML serialization when attempting to make server requests.
Error Details
ISC_Core.js?v=15.0d_2025-04-15:1473 *19:02:03.139:WARN:HLayout:isc_HLayout_0:Adding already drawn widget:isc_VLayout_1 to new parent:isc_HLayout_0. Child has been cleared so it can be drawn inside the new parent. This may be a result of autoDraw being enabled for the child.
(anonymous) @ ISC_Core.js?v=15.0d_2025-04-15:1473Understand this warning
ISC_Core.js?v=15.0d_2025-04-15:1473 *19:02:03.288:WARN:Log:RangeError: Maximum call stack size exceeded
Stack from error.stack:
ISC_Core.js?v=15.0d_2025-04-15:1315 Uncaught RangeError: Maximum call stack size exceeded
at String.replace (<anonymous>)
at Object.makeXMLSafe (ISC_Core.js?v=15.0d_2025-04-15:1315:858)
at Object.makeXMLSafeAttribute (ISC_Core.js?v=15.0d_2025-04-15:1315:1036)
at _3.isc_c_Comm__xmlOpenTag [as $36u] (ISC_DataBinding.js?v=15.0d_2025-04-15:66:35)
at _3.isc_c_Comm__xmlSerializeObject [as $36t] (ISC_DataBinding.js?v=15.0d_2025-04-15:52:535)
at _3.isc_c_Comm__xmlSerialize [as $ew] (ISC_DataBinding.js?v=15.0d_2025-04-15:50:17)
at _3.isc_c_Comm__xmlSerializeObject [as $36t] (ISC_DataBinding.js?v=15.0d_2025-04-15:60:423)
at _3.isc_c_Comm__xmlSerialize [as $ew] (ISC_DataBinding.js?v=15.0d_2025-04-15:50:17)
at _3.isc_c_Comm_xmlSerialize [as xmlSerialize] (ISC_DataBinding.js?v=15.0d_2025-04-15:33:413)
.
.
.
at _3.isc_c_RPCManager_serializeTransaction [as serializeTransaction] (ISC_DataBinding.js?v=15.0d_2025-04-15:1609:13)
at _3.isc_c_Comm_addTransactionToFields [as addTransactionToFields] (ISC_Core.js?v=15.0d_2025-04-15:2531:54)
at _3.isc_c_Comm_sendXmlHttpRequest [as sendXmlHttpRequest] (ISC_Core.js?v=15.0d_2025-04-15:2515:27)
at _3.isc_c_RPCManager__sendQueue [as $84s] (ISC_DataBinding.js?v=15.0d_2025-04-15:1640:79)
at _3.isc_c_RPCManager_sendQueue [as sendQueue] (ISC_DataBinding.js?v=15.0d_2025-04-15:1612:87)
at _3.isc_c_RPCManager_sendRequest [as sendRequest] (ISC_DataBinding.js?v=15.0d_2025-04-15:1548:218)
at _3.isc_DataSource_performSCServerOperation [as performSCServerOperation] (ISC_DataBinding.js?v=15.0d_2025-04-15:2990:75)
at _3.isc_DataSource_sendDSRequest [as sendDSRequest] (ISC_DataBinding.js?v=15.0d_2025-04-15:790:13)
at _3.isc_DataSource_performDSOperation [as performDSOperation] (ISC_DataBinding.js?v=15.0d_2025-04-15:762:76)
at _3.isc_DataSource_fetchData [as fetchData] (ISC_DataBinding.js?v=15.0d_2025-04-15:704:99)
The stack trace indicates a recursive loop in the XML serialization process, specifically when handling data for a server request.
Steps to Reproduce
The error occurs when the application attempts to make a server request. It appears to happen during the XML serialization process of the request data.
Impact
This is blocking our upgrade to SmartClient 15.0d as it prevents communication with the server, making the application unusable.
Questions
- SmartClient Version: 15.0d (2025-04-15)
- Previously working in: Version 12.1
- Also reproducing in: Version 14.1p
Issue Description
I'm encountering a critical error in our application after upgrading from SmartClient 12.1 to 15.0d. The application is throwing a "Maximum call stack size exceeded" error during XML serialization when attempting to make server requests.
Error Details
ISC_Core.js?v=15.0d_2025-04-15:1473 *19:02:03.139:WARN:HLayout:isc_HLayout_0:Adding already drawn widget:isc_VLayout_1 to new parent:isc_HLayout_0. Child has been cleared so it can be drawn inside the new parent. This may be a result of autoDraw being enabled for the child.
(anonymous) @ ISC_Core.js?v=15.0d_2025-04-15:1473Understand this warning
ISC_Core.js?v=15.0d_2025-04-15:1473 *19:02:03.288:WARN:Log:RangeError: Maximum call stack size exceeded
Stack from error.stack:
ISC_Core.js?v=15.0d_2025-04-15:1315 Uncaught RangeError: Maximum call stack size exceeded
at String.replace (<anonymous>)
at Object.makeXMLSafe (ISC_Core.js?v=15.0d_2025-04-15:1315:858)
at Object.makeXMLSafeAttribute (ISC_Core.js?v=15.0d_2025-04-15:1315:1036)
at _3.isc_c_Comm__xmlOpenTag [as $36u] (ISC_DataBinding.js?v=15.0d_2025-04-15:66:35)
at _3.isc_c_Comm__xmlSerializeObject [as $36t] (ISC_DataBinding.js?v=15.0d_2025-04-15:52:535)
at _3.isc_c_Comm__xmlSerialize [as $ew] (ISC_DataBinding.js?v=15.0d_2025-04-15:50:17)
at _3.isc_c_Comm__xmlSerializeObject [as $36t] (ISC_DataBinding.js?v=15.0d_2025-04-15:60:423)
at _3.isc_c_Comm__xmlSerialize [as $ew] (ISC_DataBinding.js?v=15.0d_2025-04-15:50:17)
at _3.isc_c_Comm_xmlSerialize [as xmlSerialize] (ISC_DataBinding.js?v=15.0d_2025-04-15:33:413)
.
.
.
at _3.isc_c_RPCManager_serializeTransaction [as serializeTransaction] (ISC_DataBinding.js?v=15.0d_2025-04-15:1609:13)
at _3.isc_c_Comm_addTransactionToFields [as addTransactionToFields] (ISC_Core.js?v=15.0d_2025-04-15:2531:54)
at _3.isc_c_Comm_sendXmlHttpRequest [as sendXmlHttpRequest] (ISC_Core.js?v=15.0d_2025-04-15:2515:27)
at _3.isc_c_RPCManager__sendQueue [as $84s] (ISC_DataBinding.js?v=15.0d_2025-04-15:1640:79)
at _3.isc_c_RPCManager_sendQueue [as sendQueue] (ISC_DataBinding.js?v=15.0d_2025-04-15:1612:87)
at _3.isc_c_RPCManager_sendRequest [as sendRequest] (ISC_DataBinding.js?v=15.0d_2025-04-15:1548:218)
at _3.isc_DataSource_performSCServerOperation [as performSCServerOperation] (ISC_DataBinding.js?v=15.0d_2025-04-15:2990:75)
at _3.isc_DataSource_sendDSRequest [as sendDSRequest] (ISC_DataBinding.js?v=15.0d_2025-04-15:790:13)
at _3.isc_DataSource_performDSOperation [as performDSOperation] (ISC_DataBinding.js?v=15.0d_2025-04-15:762:76)
at _3.isc_DataSource_fetchData [as fetchData] (ISC_DataBinding.js?v=15.0d_2025-04-15:704:99)
- Issue originates in makeXMLSafe method
- Propagates through makeXMLSafeAttribute and various XML serialization methods
- Ultimately affects the RPCManager when sending requests to the server
The stack trace indicates a recursive loop in the XML serialization process, specifically when handling data for a server request.
Steps to Reproduce
The error occurs when the application attempts to make a server request. It appears to happen during the XML serialization process of the request data.
Impact
This is blocking our upgrade to SmartClient 15.0d as it prevents communication with the server, making the application unusable.
Questions
- Is this a known issue with SmartClient 15.0d?
- Could this be related to circular references in our data objects being serialized?
- Are there any configuration changes or patches needed when upgrading from 12.1 to 15.0d?
- What debugging steps would you recommend to identify the specific data structure causing this error?
Comment