Hey - an update for anyone interested. The CU does not appear to have helped, in fact proving the rule "NEVER apply a CU unless you have to, and then only do it to DEV with lots of testing", it has broken the version history of all the document sets, giving the error: System.FormatException: String was not recognized as a valid DateTime. at System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles) at Microsoft.Office.DocumentManagement.DocumentSets.DocumentSetVersionCollection.ReadInSnapshotFields(XmlReader& reader, DocumentSetVersion& snapshot) at Microsoft.Office.DocumentManagement.DocumentSets.DocumentSetVersionCollection.ReadInSnapshots(XmlReader& reader) at Microsoft.Office.DocumentManagement.DocumentSets.DocumentSetVersionCollection.Load() at Microsoft.Office.DocumentManagement.DocumentSets.DocumentSetVersionCollection.get_Count() at Microsoft.Office.DocumentManagement.Pages.DocumentSetVersionHistoryUI.Sort() at Microsoft.Office.DocumentManagement.Pages.DocumentSetVersionHistoryUI.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
On a brighter point, I wrote a script to show all the doc sets that had the issue (around 20 of the 4000 in the library), and it appears that all of these document sets have nearly-duplicate documents in them - that is, they have MSG files added to them which have the same filename (not including extension) as a PDF in the doc set. I believe deleting these files (and removing from the recycle bins) makes the whole thing work ok again - so well done Ishai!!! - but I am having to restore the environment to test properly thanks for your help guys! Date: Mon, 8 Jul 2013 12:27:32 +0930 Subject: Re: Document Set Version Collection Corrupted From: oconnor...@gmail.com To: ozmoss@ozmoss.com Hi Nigel, I vaguely remembered having a similar issue previously. I don't actually think it was the same problem, as Ishai said, it's a pretty generic error... I believe it was the same error but different circumstances. I just put my Googling hat on and this hotfix came up, it sounded relatively similar to what you were experiencing. Of course, I'd suggest testing this out on a test environment before rolling it out to production, ensuring it does actually resolve the problem. Cheers,Tom On 8 July 2013 11:59, Ishai Sagi <is...@exd.com.au> wrote: That fix may or may not be relevant – since it states that it is only about viewing version history, not creating a new one. The error is indicating that something that should be unique is duplicated – a regular unhelpful XML error. Since it is happening in a url to ID method, I would suspect that some file in the docset is registered as being there twice for some obscure reason. Ishai Sagi | Solutions Architect 0488 789 786 | is...@exd.com.au | www.sharepoint-tips.com | @ishaisagi | MVP Profile From: ozmoss-boun...@ozmoss.com [mailto:ozmoss-boun...@ozmoss.com] On Behalf Of Tom O'Connor Sent: Monday, 8 July 2013 11:09 AM To: ozMOSS Subject: Re: Document Set Version Collection Corrupted What patch level are you at? Assuming SP2010. There is a fix in the following CU that looks to be a fix for your issue. http://support.microsoft.com/kb/2687545 On 8 July 2013 09:28, Nigel Witherdin <nigel_wither...@hotmail.com> wrote: Hey Guys, Just about to start looking into this one and trying some stuff, but as it is reasonably obscure thought I would throw it out there in case anyone else has encountered something similar. We have a library consisting of many thousands of document sets. Most of these document sets are fine, but have found one where trying to view the document set version history or create a new ds version throws an error: System.ArgumentException: An item with the same key has already been added. at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource) at System.Collections.Generic.Dictionary`2.Insert(TKey key, TValue value, Boolean add) at System.Collections.Generic.Dictionary`2.Add(TKey key, TValue value) at Microsoft.Office.DocumentManagement.DocumentSets.DocumentSetVersionCollection.get_ListItemUrlToInternalIdMap() at Microsoft.Office.DocumentManagement.DocumentSets.DocumentSetVersionCollection.<CacheListItems>b__b(SPListItem item) at Microsoft.Office.Server.Utilities.ContentIterator.ProcessItem(SPListItem item, Boolean fIncludeFolderItems, MonitoredScopeWrapper monitoredScopeWrapper, ItemProcessor itemProcessor, ItemProcessorErrorCallout errorCallout) at Microsoft.Office.Server.Utilities.ContentIterator.ProcessItems(SPListItemCollection items, Boolean fIncludeFolderItems, Boolean fIterateInReverseOrder, MonitoredScopeWrapper monitoredScopeWrapper, ItemProcessor itemProcessor, ItemProcessorErrorCallout errorCallout) at Microsoft.Office.Server.Utilities.ContentIterator.<>c__DisplayClass17.<ProcessItemsInFolder>b__16(SPListItemCollection items) at Microsoft.Office.Server.Utilities.ContentIterator.ProcessListItems(SPList list, SPQuery query, ItemsProcessor itemsProcessor, ItemsProcessorErrorCallout errorCallout) at Microsoft.Office.Server.Utilities.ContentIterator.ProcessListItems(SPList list, String strQuery, UInt32 rowLimit, Boolean fRecursive, SPFolder folder, ItemsProcessor itemsProcessor, ItemsProcessorErrorCallout errorCallout) at Microsoft.Office.Server.Utilities.ContentIterator.ProcessItemsInFolder(SPList list, SPFolder folder, Boolean fRecursive, Boolean fIncludeFolderItems, Boolean fIterateInReverseOrder, ItemProcessor itemProcessor, ItemProcessorErrorCallout errorCallout) at Microsoft.Office.Server.Utilities.ContentIterator.ProcessItemsInFolder(SPList list, SPFolder folder, Boolean fRecursive, Boolean fIncludeFolderItems, ItemProcessor itemProcessor, ItemProcessorErrorCallout errorCallout) at Microsoft.Office.DocumentManagement.DocumentSets.DocumentSetVersionCollection.CacheListItems() at Microsoft.Office.DocumentManagement.DocumentSets.DocumentSetVersionCollection.Load() at Microsoft.Office.DocumentManagement.DocumentSets.DocumentSetVersionCollection.Add(Boolean isLastMajor, String comments) at Microsoft.Office.DocumentManagement.Pages.CreateVersionUI.OnInit(EventArgs e) at System.Web.UI.Control.InitRecursive(Control namingContainer) at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) anyone have any ideas or suggestions? Cheers, Nigel _______________________________________________ ozmoss mailing list ozmoss@ozmoss.com http://prdlxvm0001.codify.net/mailman/listinfo/ozmoss _______________________________________________ ozmoss mailing list ozmoss@ozmoss.com http://prdlxvm0001.codify.net/mailman/listinfo/ozmoss _______________________________________________ ozmoss mailing list ozmoss@ozmoss.com http://prdlxvm0001.codify.net/mailman/listinfo/ozmoss
<<inline: image003.jpg>>
_______________________________________________ ozmoss mailing list ozmoss@ozmoss.com http://prdlxvm0001.codify.net/mailman/listinfo/ozmoss