We just finished upgrading our system to Kentico v4.1.12 and we've ran into a problem with editing document links that existed prior to the upgrade.
When the "Link properties" option is selected from the CMSDesk editor for one of these pre-existing links, the CMSFormControls/Selectors/InsertImageOrMedia/Default.aspx gives an error: "Server Error in '/BRWEB' Application".
Debugging the code, the error occurs within CMSAdminControls/Dialogs/General/DialogFooter.ascx.cs file, on line 240:
MediaSource ms = CMSDialogHelper.GetMediaData(url, siteName);
The values of the two parameters are:
url = "/BRWEB/getdoc/7a9e4caf-9928-4cf2-8e5e-4685401cfbe2/PN_3114_Rev_01-07_-_Blue_Rhino_Logo_Sheet.aspx"
sitename = null
The full exception is:
System.NullReferenceException was unhandled by user code
Message="Object reference not set to an instance of an object."
Source="CMS.ExtendedControls"
StackTrace:
at CMS.ExtendedControls.CMSDialogHelper.GetMediaData(String url, String siteName)
at CMSAdminControls_Dialogs_General_DialogFooter.SelectMediaDialog(Hashtable selectionTable, ArrayList anchorsList, ArrayList idsList) in d:\Apps\BR_WEB\CMSAdminControls\Dialogs\General\DialogFooter.ascx.cs:line 240
at CMSAdminControls_Dialogs_General_DialogFooter.btnHidden_Click(Object sender, EventArgs e) in d:\Apps\BR_WEB\CMSAdminControls\Dialogs\General\DialogFooter.ascx.cs:line 481
at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
The selected value that is being passed to the GetHashTableFromString() method is (line 463):
"img_link|/BRWEB/getdoc/7a9e4caf-9928-4cf2-8e5e-4685401cfbe2/PN_3114_Rev_01-07_-_Blue_Rhino_Logo_Sheet.aspx|img_target||link_target||link_url|/BRWEB/getdoc/7a9e4caf-9928-4cf2-8e5e-4685401cfbe2/PN_3114_Rev_01-07_-_Blue_Rhino_Logo_Sheet.aspx|link_protocol|other|link_text||link_id||link_name||link_tooltip||link_class||link_style|"
Removing the link and readding it fixes the error, but given that we have 400-500 links in our corporate knowledge base, that's not an option. We'd like to either have a code solution or a db solution that can be applied to all of the links.