KNOWN ISSUE: Fail to create Action 'Delete' and 'Add to organisational group' in context menu when shift+select multiple items

Article:TECH44689  |  Created: 2009-09-08  |  Updated: 2012-10-30  |  Article URL http://www.symantec.com/docs/TECH44689
NOTE: If you are experiencing this particular known issue, we recommend that you Subscribe to receive email notification each time this article is updated. Subscribers will be the first to learn about any releases, status changes, workarounds or decisions made.
Article Type
Technical Solution


Issue



When selecting multiple resources and right-clicking the right-click menu doesn't show the proper selections. Examining the log viewer you may find the the right-click menu fails because the "delete" and "add to organizational view" items has a URL limit of 2048 bytes. When selecting multiple resources a right-click appearently exceeds this limit.

Altiris Log viewer shows the following error:

Priority: 1
Date: 07/20/2009 10:05:03 AM
Tick Count: 550859
Host Name: ServerNameHere
Process: w3wp (3612)
Thread ID: 1
Module: w3wp.exe
Source: Altiris.NS.ItemManagement.Item.CreateContextMenuItemForItemAction
Description:
Item Action 'Add to organizational group' (ItemGuid:Add to organizational group (5728284d-6940-40a9-989b-bfc4b114868b)) has failed to GetItemActionUrl() when selected item count is 53.

( Exception Details: Altiris.NS.Exceptions.UrlMaxLengthExceededException: Url length: 2498 must be less then 2048 bytes. Consider including the 'appendItemGuidsToUrl' attribute and setting it to false in the ItemAction's definition
   at Altiris.NS.StandardItems.ItemActions.GenericItemAction.GetItemActionUrl
(GuidCollection itemGuids)
   at Altiris.NS.ItemManagement.Item.CreateContextMenuItemForItemAction
(IItemAction action, GuidCollection itemGuids, Guid callbackItemGuid) )
( Exception logged from:
   at Altiris.Diagnostics.Logging.EventLog.ReportException(Int32 severity,
String strMessage, String category, Exception exception)
   at Altiris.Diagnostics.Logging.EventLog.ReportException(String strMessage,
String category, Exception exception)
   at Altiris.NS.ItemManagement.Item.CreateContextMenuItemForItemAction
(IItemAction action, GuidCollection itemGuids, Guid callbackItemGuid)
   at Altiris.NS.ItemManagement.Item.Tree.PopulateContextMenu(TreeNode node,
ContextMenu menu, Guid callbackItemGuid, Hashtable allActions, GuidCollection
targetItemGuids)
   at Altiris.NS.ItemManagement.Item.Tree.GenerateContextMenu(ContextMenu menu,
Hashtable accessDeniedList, Guid callbackItemGuid, ItemActionCollection
itemActions, GuidCollection targetItemGuids)
   at Altiris.NS.ItemManagement.Item.BuildContextMenuForItemActions
(GuidCollection targetItemGuids, ContextMenu menu, Guid callbackItemGuid)
   at Altiris.NS.ItemManagement.Item.BuildContextMenuForItemActions
(GuidCollection itemGuids, ContextMenu menu)
   at Altiris.NS.UI.DataProviders.NSMenuProvider.GetMenu(List`1 ids)
   at Altiris.WebControls.MenuControl.menuCallback_Callback(Object sender,
CallBackEventArgs e)
   at ComponentArt.Web.UI.CallBack.OnCallback(CallBackEventArgs e)
   at ComponentArt.Web.UI.CallBack.HandleCallback(String[] arParams)
   at ComponentArt.Web.UI.CallBack.ComponentArtRender(HtmlTextWriter output)
   at ComponentArt.Web.UI.WebControl.Render(HtmlTextWriter output)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer,
ControlAdapter adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter
adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer,
ICollection children)
   at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
   at System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer)
   at System.Web.UI.WebControls.CompositeControl.Render(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer,
ControlAdapter adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter
adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer,
ICollection children)
   at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
   at System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer)
   at System.Web.UI.WebControls.CompositeControl.Render(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer,
ControlAdapter adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter
adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer,
ICollection children)
   at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
   at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter
writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer,
ControlAdapter adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter
adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer,
ICollection children)
   at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
   at System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer)
   at System.Web.UI.WebControls.CompositeControl.Render(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer,
ControlAdapter adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter
adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer,
ICollection children)
   at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
   at System.Web.UI.HtmlControls.HtmlContainerControl.Render(HtmlTextWriter
writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer,
ControlAdapter adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter
adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
   at ASP.admin_collections_resourceviews_resourceview_aspx.__Renderform1
(HtmlTextWriter __w, Control parameterContainer)
   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer,
ICollection children)
   at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
   at System.Web.UI.HtmlControls.HtmlForm.RenderChildren(HtmlTextWriter writer)
   at System.Web.UI.HtmlControls.HtmlForm.Render(HtmlTextWriter output)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer,
ControlAdapter adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter
adapter)
   at System.Web.UI.HtmlControls.HtmlForm.RenderControl(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderChildrenInternal(HtmlTextWriter writer,
ICollection children)
   at System.Web.UI.Control.RenderChildren(HtmlTextWriter writer)
   at System.Web.UI.Page.Render(HtmlTextWriter writer)
   at System.Web.UI.Control.RenderControlInternal(HtmlTextWriter writer,
ControlAdapter adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer, ControlAdapter
adapter)
   at System.Web.UI.Control.RenderControl(HtmlTextWriter writer)
   at System.Web.UI.Page.ProcessRequestMain(Boolean
includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint,
Boolean includeStagesAfterAsyncPoint)
   at System.Web.UI.Page.ProcessRequest()
   at System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context)
   at System.Web.UI.Page.ProcessRequest(HttpContext context)
   at ASP.admin_collections_resourceviews_resourceview_aspx.ProcessRequest
(HttpContext context)
   at
System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.I
ExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean&
completedSynchronously)
   at System.Web.HttpApplication.ApplicationStepManager.ResumeSteps(Exception
error)
   at
System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest
(HttpContext context, AsyncCallback cb, Object extraData)
   at System.Web.HttpRuntime.ProcessRequestInternal(HttpWorkerRequest wr)
   at System.Web.HttpRuntime.ProcessRequestNoDemand(HttpWorkerRequest wr)
   at System.Web.Hosting.ISAPIRuntime.ProcessRequest(IntPtr ecb, Int32 iWRType)
)
( Extra Details:  Type=Altiris.NS.Exceptions.UrlMaxLengthExceededException
Src=Altiris.NS.StandardItems )

It works when selecting up to 43 resources.
 


Environment



Symantec Management Platform 7.0 SP2 and later
Symantec Management Platform 7.1


Cause



The problem is if more than 50 items were selected and the selected item Guids were passed, in method GetItemActionUrl () of class GenericItemAction, it is hard coded the Url length cannot longer than 2048 bytes. If more than the setting, exception was thrown.


Solution



This issue has been reported to our Symantec Development team. This issue has been mostly addressed in the SMP 7.5 Release. Multiple pages were adjusted to be able to handle multiple selection.


The previous workaround was to select less than 50 resources. The following steps are provided as a workaround on those SMP 7.1 SP2 implementations:

1. Go to Settings -> All Settings -> Notification Server -> Right Click Menu

2. Inside this folder, find Delete and export it as XML

3. In this XML file, find and change the line  appendItemGuidsToUrl to "False"

4. Save the file and import it back.

5. Try again and attempt to delete more than 50 records.

 


Supplemental Materials

SourceETrack
Value1744597, 1761077, 2923335, 2929345
Description

Logged in Etrack (Symantec) database


SourceETrack
Value1761077, 2923335, 2929345
Description

Logged in Etrack (Symantec) database


Legacy ID



48969


Article URL http://www.symantec.com/docs/TECH44689


Terms of use for this information are found in Legal Notices