SharePoint 2010 DataForm Unable to display this Web Part System.StackOverflowException


Problem

You receive below error in SharePoint page containing DataForm web part with custom XSL applied, and also if your list contains a large number of columns.

Unable to display this Web Part. To troubleshoot the problem, open this Web page in a Microsoft SharePoint Foundation-compatible HTML editor such as Microsoft SharePoint Designer. If the problem persists, contact your Web server administrator.

Correlation ID: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX

Troubleshooting

Based on the Correlation ID, search the SharePoint ULS Logs to find more information and error related to this message.

Tip - Use the Merge-SPLogFile PowerShell command (SharePoint Management Shell - Run as Administrator) to get relative logs.

By digging into the logs, we get this useful error/exception - System.StackOverflowException
Error while executing web part: System.StackOverflowException: Operation caused a stack overflow.
 at Microsoft.Xslt.NativeMethod.CheckForSufficientStack()
 at (XmlQueryRuntime , XPathNavigator )
 at (XmlQueryRuntime , IList`1 )
 at (XmlQueryRuntime , XPathNavigator )
 at (XmlQueryRuntime , XPathNavigator , IList`1 , IList`1 )
 at Root(XmlQueryRuntime )
 at System.Xml.Xsl.XmlILCommand.Execute(Object defaultDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlWriter writer, Boolean closeWriter)
 at System.Xml.Xsl.XmlILCommand.Execute(IXPathNavigable contextDocument, XmlResolver dataSources, XsltArgumentList argumentList, XmlWriter results)
 at System.Xml.Xsl.XslCompiledTransform.Transform(IXPathNavigable input, XsltArgumentList arguments, XmlWriter results)
 at Microsoft.SharePoint.WebPartPages.DataFormWebPart.ExecuteTransform(XslCompiledTransform xslCompiledTransform, XsltArgumentList xmlArguments, Boolean bDeferExecuteTransform)
 at Microsoft.SharePoint.WebPartPages.DataFormWebPart.PrepareAndPerformTransform(Boolean bDeferExecuteTransform)
Reason for Error

Firstly, this is a known issue and a SharePoint 2010 limitation (KB 2639184 - https://support.microsoft.com/en-us/kb/2639184). Secondly, there is a Hotfix (Cumulative Update) to fix this.

This happens because the time allowed for doing the XSL transformation is exceeded and goes over 1 second (default SharePoint is 1 second).

If you create a page from SharePoint Designer which includes much of XSLT, the page will take more time to open. If the page takes more than than a second to open and load, you may come across this error.

Suggestions

> Solutions provided here should work - https://support.microsoft.com/en-us/kb/2639184

> Another KB which describes similar issue - https://support.microsoft.com/en-us/kb/2597136

Resolution

You need to execute below PowerShell command in SharePoint FARM from your SharePoint Server to change and increase the XsltTransformTimeOut value (default is 1 second)

Open SharePoint 2010 Management Shell 'run as administrator'

$spFarm = Get-SPFarm 
$spFarm.XsltTransformTimeOut = [NEW INTEGER VALUE]
$spFarm.Update()
Example:
$spFarm = Get-SPFarm 
$spFarm.XsltTransformTimeOut = 10
$spFarm.Update()
Copyright © Code2care 2024 | Privacy Policy | About Us | Contact Us | Sitemap