Stackoverflow / Infinite recursion during content import of non-latin named nodes
Usync.content 0.7 / uSync 1.5.8.2 / Umbraco 6.1.3
Looks like uSync connot process Content with non-Lating symbols :( It
seems like it overwrites content of the file .content for each non-latin
file
Part of the log file:
2014-02-28 11:28:24,903 [387] INFO Umbraco.Core.PluginManager - [Thread 400] Completed resolution of types of umbraco.BusinessLogic.Actions.IActionHandler, found 1 (took 7ms) 2014-02-28 11:28:25,034 [387] INFO Umbraco.Core.Publishing.PublishingStrategy - [Thread 400] Content 'Настройки' with Id '7772' has been published. 2014-02-28 11:28:25,169 [387] INFO jumoo.usync.content.ContentImporter - [Thread 400] Настройки no change 2014-02-28 11:28:25,177 [387] INFO jumoo.usync.content.ContentImporter - [Thread 400] Настройки no change
After deleting uSync folder and another run I got this:
2014-02-28 12:12:13,396 [38] INFO Umbraco.Core.PluginManager - [Thread 6] Starting resolution types of umbraco.BusinessLogic.Actions.IActionHandler 2014-02-28 12:12:13,397 [38] INFO Umbraco.Core.PluginManager - [Thread 6] Completed resolution of types of umbraco.BusinessLogic.Actions.IActionHandler, found 1 (took 0ms) 2014-02-28 12:12:13,539 [38] INFO Umbraco.Core.Publishing.PublishingStrategy - [Thread 6] Content 'Настройки' with Id '7772' has been published. 2014-02-28 12:12:13,703 [38] INFO Umbraco.Core.Publishing.PublishingStrategy - [Thread 6] Content 'Настройки' with Id '7772' has been published. 2014-02-28 12:12:13,846 [38] ERROR Umbraco.Core.UmbracoApplicationBase - [Thread 6] An unhandled exception occurred System.ArgumentException: Cannot insert a node or any ancestor of that node as a child of itself. at System.Xml.XmlNode.AppendChild(XmlNode newChild) at umbraco.content.AppendDocumentXml(Int32 id, Int32 level, Int32 parentId, XmlNode docNode, XmlDocument xmlContentCopy) at umbraco.content.PublishNodeDo(Document d, XmlDocument xmlContentCopy, Boolean updateSitemapProvider) at umbraco.content.UpdateDocumentCache(Document d) at Umbraco.Web.Cache.PageCacheRefresher.Refresh(IContent instance) at Umbraco.Core.Sync.DefaultServerMessenger.InvokeMethodOnRefresherInstance[T](ICacheRefresher refresher, MessageType dispatchType, Func`2 getId, IEnumerable`1 instances) at Umbraco.Core.Sync.DefaultServerMessenger.PerformRefresh[T](IEnumerable`1 servers, ICacheRefresher refresher, Func`2 getNumericId, T[] instances) at Umbraco.Web.Cache.DistributedCache.Refresh[T](Guid factoryGuid, Func`2 getNumericId, T[] instances) at Umbraco.Web.Cache.DistributedCacheExtensions.RefreshPageCache(DistributedCache dc, IContent[] content) at Umbraco.Core.Services.ContentService.SaveAndPublishDo(IContent content, Int32 userId, Boolean raiseEvents) at Umbraco.Core.Services.ContentService.SaveAndPublish(IContent content, Int32 userId, Boolean raiseEvents) at jumoo.usync.content.ContentImporter.ImportContentItem(XElement element, Int32 parentId) at jumoo.usync.content.ContentImporter.ImportDiskContent(String path, Int32 parentId) at jumoo.usync.content.ContentImporter.ImportDiskContent(String path, Int32 parentId) at jumoo.usync.content.ContentImporter.ImportDiskContent(String path, Int32 parentId) at jumoo.usync.content.ContentImporter.ImportDiskContent() at jumoo.usync.content.ContentSync.DoStartup() at jumps.umbraco.usync.uSync.DoOnStart() at Umbraco.Core.EnumerableExtensions.ForEach[TItem](IEnumerable`1 items, Action`1 action) at Umbraco.Core.CoreBootManager.Complete(Action`1 afterComplete)
Putting jumoo.usync.content.dll into the bin folder should be enough to start using this version,
but as it uses a diffrent function to generate the file names, it might generate new names for exisisting types, so deleting the /usync/content folder might also be the way forward.
I'd suggest you to use content ID's as file names, there will be no problems then. UTF-8 for file contents will be great too (if it is not there already) :)
yes in a 'making a rod for my own back' moment - I made the design decision for uSync and uSync.ContentEdition that they would make the disk representation of the site/content readable - so it uses names.
IDs would from a programmatic sense make it much easier, but I still feel having the site represented by the folders makes it easier to understand what's going on - it's especially nice in source control.
I might still one day just give up and put an option in to save by ID it would make quite a few things "just work".
Stackoverflow / Infinite recursion during content import of non-latin named nodes
Usync.content 0.7 / uSync 1.5.8.2 / Umbraco 6.1.3
Looks like uSync connot process Content with non-Lating symbols :( It seems like it overwrites content of the file .content for each non-latin file
Part of the log file:
2014-02-28 11:28:24,903 [387] INFO Umbraco.Core.PluginManager - [Thread 400] Completed resolution of types of umbraco.BusinessLogic.Actions.IActionHandler, found 1 (took 7ms)
2014-02-28 11:28:25,034 [387] INFO Umbraco.Core.Publishing.PublishingStrategy - [Thread 400] Content 'Настройки' with Id '7772' has been published.
2014-02-28 11:28:25,169 [387] INFO jumoo.usync.content.ContentImporter - [Thread 400] Настройки no change
2014-02-28 11:28:25,177 [387] INFO jumoo.usync.content.ContentImporter - [Thread 400] Настройки no change
After deleting uSync folder and another run I got this:
2014-02-28 12:12:13,396 [38] INFO Umbraco.Core.PluginManager - [Thread 6] Starting resolution types of umbraco.BusinessLogic.Actions.IActionHandler
2014-02-28 12:12:13,397 [38] INFO Umbraco.Core.PluginManager - [Thread 6] Completed resolution of types of umbraco.BusinessLogic.Actions.IActionHandler, found 1 (took 0ms)
2014-02-28 12:12:13,539 [38] INFO Umbraco.Core.Publishing.PublishingStrategy - [Thread 6] Content 'Настройки' with Id '7772' has been published.
2014-02-28 12:12:13,703 [38] INFO Umbraco.Core.Publishing.PublishingStrategy - [Thread 6] Content 'Настройки' with Id '7772' has been published.
2014-02-28 12:12:13,846 [38] ERROR Umbraco.Core.UmbracoApplicationBase - [Thread 6] An unhandled exception occurred
System.ArgumentException: Cannot insert a node or any ancestor of that node as a child of itself.
at System.Xml.XmlNode.AppendChild(XmlNode newChild)
at umbraco.content.AppendDocumentXml(Int32 id, Int32 level, Int32 parentId, XmlNode docNode, XmlDocument xmlContentCopy)
at umbraco.content.PublishNodeDo(Document d, XmlDocument xmlContentCopy, Boolean updateSitemapProvider)
at umbraco.content.UpdateDocumentCache(Document d)
at Umbraco.Web.Cache.PageCacheRefresher.Refresh(IContent instance)
at Umbraco.Core.Sync.DefaultServerMessenger.InvokeMethodOnRefresherInstance[T](ICacheRefresher refresher, MessageType dispatchType, Func`2 getId, IEnumerable`1 instances)
at Umbraco.Core.Sync.DefaultServerMessenger.PerformRefresh[T](IEnumerable`1 servers, ICacheRefresher refresher, Func`2 getNumericId, T[] instances)
at Umbraco.Web.Cache.DistributedCache.Refresh[T](Guid factoryGuid, Func`2 getNumericId, T[] instances)
at Umbraco.Web.Cache.DistributedCacheExtensions.RefreshPageCache(DistributedCache dc, IContent[] content)
at Umbraco.Core.Services.ContentService.SaveAndPublishDo(IContent content, Int32 userId, Boolean raiseEvents)
at Umbraco.Core.Services.ContentService.SaveAndPublish(IContent content, Int32 userId, Boolean raiseEvents)
at jumoo.usync.content.ContentImporter.ImportContentItem(XElement element, Int32 parentId)
at jumoo.usync.content.ContentImporter.ImportDiskContent(String path, Int32 parentId)
at jumoo.usync.content.ContentImporter.ImportDiskContent(String path, Int32 parentId)
at jumoo.usync.content.ContentImporter.ImportDiskContent(String path, Int32 parentId)
at jumoo.usync.content.ContentImporter.ImportDiskContent()
at jumoo.usync.content.ContentSync.DoStartup()
at jumps.umbraco.usync.uSync.DoOnStart()
at Umbraco.Core.EnumerableExtensions.ForEach[TItem](IEnumerable`1 items, Action`1 action)
at Umbraco.Core.CoreBootManager.Complete(Action`1 afterComplete)
I confess i am you typical arrogant English dude, and I didn't check the language stuff at all in this package :(
I think its just not writing the name of the .content file correctly?
I have an updated version on github that tries to get the name written out, I think it works but it would be good if you could test?
https://github.com/KevinJump/jumoo.usync/tree/master/Package/Latest/uSyncContent
Putting jumoo.usync.content.dll into the bin folder should be enough to start using this version,
but as it uses a diffrent function to generate the file names, it might generate new names for exisisting types, so deleting the /usync/content folder might also be the way forward.
I'd suggest you to use content ID's as file names, there will be no problems then. UTF-8 for file contents will be great too (if it is not there already) :)
yes in a 'making a rod for my own back' moment - I made the design decision for uSync and uSync.ContentEdition that they would make the disk representation of the site/content readable - so it uses names.
IDs would from a programmatic sense make it much easier, but I still feel having the site represented by the folders makes it easier to understand what's going on - it's especially nice in source control.
I might still one day just give up and put an option in to save by ID it would make quite a few things "just work".
is working on a reply...