Deploying documents revision leads to Property Data - obj not set to instance of obj
Hi all,
I have setup two sites and want to move data from one to the other. I have prepared a revision package of all documents on site A and transfered to site B. When I try to deploy the package it extracts a few and stops with the following error message:
System.Exception: Could not deploy the revisions because of errors. ---> Umbraco.Courier.Core.Exceptions.ExtractionManagerException: There was a problem with extracting database information for the item: Name:Document About Us Property Data | Id:5492c83c-1c77-4347-8930-9571c5be0045 | Provider:PropertyData ---> System.NullReferenceException: Object reference not set to an instance of an object. at Umbraco.Courier.Persistence.V4.NHibernate.Helpers.DocumentTypeHelper.GetPropertyTypes(CmsContentType contentType, ISession session, Boolean recursive) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Persistence.NHibernate\Helpers\DocumentTypeHelper.cs:line 134 at Umbraco.Courier.Persistence.V4.NHibernate.Helpers.DocumentTypeHelper.GetResursivePropertyTypes(Int32 contentTypeId, ISession session) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Persistence.NHibernate\Helpers\DocumentTypeHelper.cs:line 122 at Umbraco.Courier.Persistence.V4.NHibernate.Persisters.ContentPropertyDataItem.PersistItem[T](T item) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Persistence.NHibernate\Persisters\ContentPropertyData.cs:line 40 at Umbraco.Courier.Core.ItemCrudProvider.PersistItem[T](T item) at Umbraco.Courier.ItemProviders.PropertyItemProvider.HandleExtract(Item item) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Providers\ItemProviders\PropertyItemProvider.cs:line 80 at Umbraco.Courier.Core.ItemProvider.Extract(Item item) at Umbraco.Courier.RepositoryProviders.Local.ExtractItem(Item item, Boolean overwrite) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.RepositoryProviders\Local\Local.cs:line 55 at Umbraco.Courier.Core.ExtractionManager.ExtractItemRevision(Item item, Boolean isDependency) at Umbraco.Courier.Core.ExtractionManager.() at Umbraco.Courier.Core.ExtractionManager.() at Umbraco.Courier.Core.ExtractionManager.() at Umbraco.Courier.Core.ExtractionManager.ExtractRevisions() --- End of inner exception stack trace --- at Umbraco.Courier.Core.ExtractionManager.ExtractRevisions() at Umbraco.Courier.Core.ExtractionManager.ExtractAll(Boolean extractResources, Boolean extractRevisions) at Umbraco.Courier.UI.Pages.deployRevisions.(Object sender, EventArgs e) --- End of inner exception stack trace --- at Umbraco.Courier.UI.Pages.deployRevisions.(Object sender, EventArgs e) 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)
There was a problem with extracting database information for the item: Name:Document About Us Property Data | Id:5492c83c-1c77-4347-8930-9571c5be0045 | Provider:PropertyData
Umbraco.Courier.Core.Exceptions.ExtractionManagerException: There was a problem with extracting database information for the item: Name:Document About Us Property Data | Id:5492c83c-1c77-4347-8930-9571c5be0045 | Provider:PropertyData ---> System.NullReferenceException: Object reference not set to an instance of an object. at Umbraco.Courier.Persistence.V4.NHibernate.Helpers.DocumentTypeHelper.GetPropertyTypes(CmsContentType contentType, ISession session, Boolean recursive) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Persistence.NHibernate\Helpers\DocumentTypeHelper.cs:line 134 at Umbraco.Courier.Persistence.V4.NHibernate.Helpers.DocumentTypeHelper.GetResursivePropertyTypes(Int32 contentTypeId, ISession session) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Persistence.NHibernate\Helpers\DocumentTypeHelper.cs:line 122 at Umbraco.Courier.Persistence.V4.NHibernate.Persisters.ContentPropertyDataItem.PersistItem[T](T item) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Persistence.NHibernate\Persisters\ContentPropertyData.cs:line 40 at Umbraco.Courier.Core.ItemCrudProvider.PersistItem[T](T item) at Umbraco.Courier.ItemProviders.PropertyItemProvider.HandleExtract(Item item) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Providers\ItemProviders\PropertyItemProvider.cs:line 80 at Umbraco.Courier.Core.ItemProvider.Extract(Item item) at Umbraco.Courier.RepositoryProviders.Local.ExtractItem(Item item, Boolean overwrite) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.RepositoryProviders\Local\Local.cs:line 55 at Umbraco.Courier.Core.ExtractionManager.ExtractItemRevision(Item item, Boolean isDependency) at Umbraco.Courier.Core.ExtractionManager.() at Umbraco.Courier.Core.ExtractionManager.() at Umbraco.Courier.Core.ExtractionManager.() at Umbraco.Courier.Core.ExtractionManager.ExtractRevisions() --- End of inner exception stack trace --- at Umbraco.Courier.Core.ExtractionManager.ExtractRevisions() at Umbraco.Courier.Core.ExtractionManager.ExtractAll(Boolean extractResources, Boolean extractRevisions) at Umbraco.Courier.UI.Pages.deployRevisions.(Object sender, EventArgs e)
Object reference not set to an instance of an object.
System.NullReferenceException: Object reference not set to an instance of an object. at Umbraco.Courier.Persistence.V4.NHibernate.Helpers.DocumentTypeHelper.GetPropertyTypes(CmsContentType contentType, ISession session, Boolean recursive) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Persistence.NHibernate\Helpers\DocumentTypeHelper.cs:line 134 at Umbraco.Courier.Persistence.V4.NHibernate.Helpers.DocumentTypeHelper.GetResursivePropertyTypes(Int32 contentTypeId, ISession session) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Persistence.NHibernate\Helpers\DocumentTypeHelper.cs:line 122 at Umbraco.Courier.Persistence.V4.NHibernate.Persisters.ContentPropertyDataItem.PersistItem[T](T item) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Persistence.NHibernate\Persisters\ContentPropertyData.cs:line 40 at Umbraco.Courier.Core.ItemCrudProvider.PersistItem[T](T item) at Umbraco.Courier.ItemProviders.PropertyItemProvider.HandleExtract(Item item) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Providers\ItemProviders\PropertyItemProvider.cs:line 80 at Umbraco.Courier.Core.ItemProvider.Extract(Item item) at Umbraco.Courier.RepositoryProviders.Local.ExtractItem(Item item, Boolean overwrite) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.RepositoryProviders\Local\Local.cs:line 55 at Umbraco.Courier.Core.ExtractionManager.ExtractItemRevision(Item item, Boolean isDependency) at Umbraco.Courier.Core.ExtractionManager.() at Umbraco.Courier.Core.ExtractionManager.() at Umbraco.Courier.Core.ExtractionManager.() at Umbraco.Courier.Core.ExtractionManager.ExtractRevisions()
Well, I would really try to seperate this into smal parts, I think you said in another thread that this site is very buggy, so try splitting your revision into small parts, do all the datatypes and doctypes first, then try with content afterwards
The error comes from courier not being able to find a specific propertytype or a propertytype with a specific datatype set, can't really think of a good fix right now as I supect it comes from broken data.
I had originally tried to package the entire site and transfer it but ran into some errors so instead split it into smaller chunks like you say. I have successfully transferred templates and stylesheets so I know the process works.
If I try to transfer the documents before transferring the dependencies like property types and data types etc, will that cause the document transfer to inevitably fail?
Update: I'v moved over everything apart from documents. Got some errors when transferring all Media and it turned out that having speech marks (") or possibly a forward slash in the name of the node causes this. I went through and removed 3 occurances and it seems that fixed the media errors. Now continuing to documents...
Ok, I packaged the site up into smaller logical chunks, i.e. by object type so templates, media, help pages, contact pages etc. I ran into the asp.net script timeout error so broke them up even smaller. When I got an error I looked through the stack trace, isolated what was causing the error and excluded it from the revision package. Everything is now copied over. Thanks for your help.
Thanks. The special characters in URLS are something originating from a couple of pages I created when first using Umbraco and they have resulted in a few errors over my time with the site; the error with this package, 404's when linking the url on a forum, 404's when checking analytics etc... Perhaps they should automatically be stripped out of the node name by umbraco when creating a node along with full stops etc...?
When I was getting the error I found a node id referenced in the stack trace. If you see one, try taking a look at the properties of the node and see if you can find any abnormalities compared to other nodes - for example special characters in the node name or a property that has since been deleted from the data types etc ...
Also try excluding that particular node from the revision bundle and packaging everything else.
If it is happening on every single node you try to package, perhaps look at something more fundamental like, if you have a master document type, maybe a property alias name is in the wrong format?
Just a few concepts. You might end up needing to get more direct help from professional umbracoers.
Its good advice Max, Courier tries to handle whatever you throw at it, but it will in most cases assume that the data is valid and that it can find corrosponding property data for the current document version.
This is ofcourse not always idea, if you have pages that are not correctly stored in the umbraco DB, but actually finding out that all your documents are in sound condition is a big undertaking, but a good idea for a future inhancement of the way courier checks the integraty of you data before processing it.
Also, @dominik try getting the latest version 2.1.1 from the project page here on Our, I saw a couple of errors like yours, working with prerelease code which is not in the final release
Also might help if you post the error message you are getting.
To find the version number for the one you downloaded, open the Umbraco.Courier2_Package.zip file in your downloads folder, then open the package.xml file. Right at the bottom in info > package > version is the version number.
I'm getting the same error as well. Just like what the error says, there is a problem with 'Document xxxxx Property Data'. However, I cannot find anything wrong with that page's property data. I checked the dependencies, Document Type, Macro alias...etc. Everything seems correct. And the worst thing is this the homepage, or parent root for many sub-pages. By doing Compare & Install in Courier Revision, I can see all the sub-pages + contents are already copied over. But because the homepage is not successfully copy over, nothing shows up under Content.
Any thought on fixing this? I'm thinking to copy Document Property Data manually from SQL. But where can I find that in SQL?
Deploying documents revision leads to Property Data - obj not set to instance of obj
Hi all,
I have setup two sites and want to move data from one to the other. I have prepared a revision package of all documents on site A and transfered to site B. When I try to deploy the package it extracts a few and stops with the following error message:
System.Exception: Could not deploy the revisions because of errors. ---> Umbraco.Courier.Core.Exceptions.ExtractionManagerException: There was a problem with extracting database information for the item: Name:Document About Us Property Data | Id:5492c83c-1c77-4347-8930-9571c5be0045 | Provider:PropertyData ---> System.NullReferenceException: Object reference not set to an instance of an object.
at Umbraco.Courier.Persistence.V4.NHibernate.Helpers.DocumentTypeHelper.GetPropertyTypes(CmsContentType contentType, ISession session, Boolean recursive) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Persistence.NHibernate\Helpers\DocumentTypeHelper.cs:line 134
at Umbraco.Courier.Persistence.V4.NHibernate.Helpers.DocumentTypeHelper.GetResursivePropertyTypes(Int32 contentTypeId, ISession session) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Persistence.NHibernate\Helpers\DocumentTypeHelper.cs:line 122
at Umbraco.Courier.Persistence.V4.NHibernate.Persisters.ContentPropertyDataItem.PersistItem[T](T item) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Persistence.NHibernate\Persisters\ContentPropertyData.cs:line 40
at Umbraco.Courier.Core.ItemCrudProvider.PersistItem[T](T item)
at Umbraco.Courier.ItemProviders.PropertyItemProvider.HandleExtract(Item item) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Providers\ItemProviders\PropertyItemProvider.cs:line 80
at Umbraco.Courier.Core.ItemProvider.Extract(Item item)
at Umbraco.Courier.RepositoryProviders.Local.ExtractItem(Item item, Boolean overwrite) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.RepositoryProviders\Local\Local.cs:line 55
at Umbraco.Courier.Core.ExtractionManager.ExtractItemRevision(Item item, Boolean isDependency)
at Umbraco.Courier.Core.ExtractionManager.()
at Umbraco.Courier.Core.ExtractionManager.()
at Umbraco.Courier.Core.ExtractionManager.()
at Umbraco.Courier.Core.ExtractionManager.ExtractRevisions()
--- End of inner exception stack trace ---
at Umbraco.Courier.Core.ExtractionManager.ExtractRevisions()
at Umbraco.Courier.Core.ExtractionManager.ExtractAll(Boolean extractResources, Boolean extractRevisions)
at Umbraco.Courier.UI.Pages.deployRevisions.(Object sender, EventArgs e)
--- End of inner exception stack trace ---
at Umbraco.Courier.UI.Pages.deployRevisions.(Object sender, EventArgs e)
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)
There was a problem with extracting database information for the item: Name:Document About Us Property Data | Id:5492c83c-1c77-4347-8930-9571c5be0045 | Provider:PropertyData
Umbraco.Courier.Core.Exceptions.ExtractionManagerException: There was a problem with extracting database information for the item: Name:Document About Us Property Data | Id:5492c83c-1c77-4347-8930-9571c5be0045 | Provider:PropertyData ---> System.NullReferenceException: Object reference not set to an instance of an object.
at Umbraco.Courier.Persistence.V4.NHibernate.Helpers.DocumentTypeHelper.GetPropertyTypes(CmsContentType contentType, ISession session, Boolean recursive) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Persistence.NHibernate\Helpers\DocumentTypeHelper.cs:line 134
at Umbraco.Courier.Persistence.V4.NHibernate.Helpers.DocumentTypeHelper.GetResursivePropertyTypes(Int32 contentTypeId, ISession session) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Persistence.NHibernate\Helpers\DocumentTypeHelper.cs:line 122
at Umbraco.Courier.Persistence.V4.NHibernate.Persisters.ContentPropertyDataItem.PersistItem[T](T item) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Persistence.NHibernate\Persisters\ContentPropertyData.cs:line 40
at Umbraco.Courier.Core.ItemCrudProvider.PersistItem[T](T item)
at Umbraco.Courier.ItemProviders.PropertyItemProvider.HandleExtract(Item item) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Providers\ItemProviders\PropertyItemProvider.cs:line 80
at Umbraco.Courier.Core.ItemProvider.Extract(Item item)
at Umbraco.Courier.RepositoryProviders.Local.ExtractItem(Item item, Boolean overwrite) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.RepositoryProviders\Local\Local.cs:line 55
at Umbraco.Courier.Core.ExtractionManager.ExtractItemRevision(Item item, Boolean isDependency)
at Umbraco.Courier.Core.ExtractionManager.()
at Umbraco.Courier.Core.ExtractionManager.()
at Umbraco.Courier.Core.ExtractionManager.()
at Umbraco.Courier.Core.ExtractionManager.ExtractRevisions()
--- End of inner exception stack trace ---
at Umbraco.Courier.Core.ExtractionManager.ExtractRevisions()
at Umbraco.Courier.Core.ExtractionManager.ExtractAll(Boolean extractResources, Boolean extractRevisions)
at Umbraco.Courier.UI.Pages.deployRevisions.(Object sender, EventArgs e)
Object reference not set to an instance of an object.
System.NullReferenceException: Object reference not set to an instance of an object.
at Umbraco.Courier.Persistence.V4.NHibernate.Helpers.DocumentTypeHelper.GetPropertyTypes(CmsContentType contentType, ISession session, Boolean recursive) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Persistence.NHibernate\Helpers\DocumentTypeHelper.cs:line 134
at Umbraco.Courier.Persistence.V4.NHibernate.Helpers.DocumentTypeHelper.GetResursivePropertyTypes(Int32 contentTypeId, ISession session) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Persistence.NHibernate\Helpers\DocumentTypeHelper.cs:line 122
at Umbraco.Courier.Persistence.V4.NHibernate.Persisters.ContentPropertyDataItem.PersistItem[T](T item) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Persistence.NHibernate\Persisters\ContentPropertyData.cs:line 40
at Umbraco.Courier.Core.ItemCrudProvider.PersistItem[T](T item)
at Umbraco.Courier.ItemProviders.PropertyItemProvider.HandleExtract(Item item) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.Providers\ItemProviders\PropertyItemProvider.cs:line 80
at Umbraco.Courier.Core.ItemProvider.Extract(Item item)
at Umbraco.Courier.RepositoryProviders.Local.ExtractItem(Item item, Boolean overwrite) in d:\TeamCity6\buildAgent\work\399aef48762b5884\Umbraco.Courier.RepositoryProviders\Local\Local.cs:line 55
at Umbraco.Courier.Core.ExtractionManager.ExtractItemRevision(Item item, Boolean isDependency)
at Umbraco.Courier.Core.ExtractionManager.()
at Umbraco.Courier.Core.ExtractionManager.()
at Umbraco.Courier.Core.ExtractionManager.()
at Umbraco.Courier.Core.ExtractionManager.ExtractRevisions()
Any ideas on how to fix this?
Well, I would really try to seperate this into smal parts, I think you said in another thread that this site is very buggy, so try splitting your revision into small parts, do all the datatypes and doctypes first, then try with content afterwards
The error comes from courier not being able to find a specific propertytype or a propertytype with a specific datatype set, can't really think of a good fix right now as I supect it comes from broken data.
so step by step, untill you find the faulty part
Thanks for your reply Per.
I had originally tried to package the entire site and transfer it but ran into some errors so instead split it into smaller chunks like you say. I have successfully transferred templates and stylesheets so I know the process works.
If I try to transfer the documents before transferring the dependencies like property types and data types etc, will that cause the document transfer to inevitably fail?
Max
Update: I'v moved over everything apart from documents. Got some errors when transferring all Media and it turned out that having speech marks (") or possibly a forward slash in the name of the node causes this. I went through and removed 3 occurances and it seems that fixed the media errors. Now continuing to documents...
Ok, I packaged the site up into smaller logical chunks, i.e. by object type so templates, media, help pages, contact pages etc. I ran into the asp.net script timeout error so broke them up even smaller. When I got an error I looked through the stack trace, isolated what was causing the error and excluded it from the revision package. Everything is now copied over. Thanks for your help.
Great you got it working, I've added the issue with slashes and speech marks to our issue tracker so it can get fixed for the next release
Thanks. The special characters in URLS are something originating from a couple of pages I created when first using Umbraco and they have resulted in a few errors over my time with the site; the error with this package, 404's when linking the url on a forum, 404's when checking analytics etc... Perhaps they should automatically be stripped out of the node name by umbraco when creating a node along with full stops etc...?
Hello,
i am getting the same error. I tried to transfer document types, macros, datatypes, media types, templates all are working.
If i try to transfer media items or content items i am getting the same error
I dont know how to solve this problem
On each media or content item i am trying to transfer this problem appears.
Any solution for it?
Dominik,
When I was getting the error I found a node id referenced in the stack trace. If you see one, try taking a look at the properties of the node and see if you can find any abnormalities compared to other nodes - for example special characters in the node name or a property that has since been deleted from the data types etc ...
Also try excluding that particular node from the revision bundle and packaging everything else.
If it is happening on every single node you try to package, perhaps look at something more fundamental like, if you have a master document type, maybe a property alias name is in the wrong format?
Just a few concepts. You might end up needing to get more direct help from professional umbracoers.
Good luck!
Max.
Its good advice Max, Courier tries to handle whatever you throw at it, but it will in most cases assume that the data is valid and that it can find corrosponding property data for the current document version.
This is ofcourse not always idea, if you have pages that are not correctly stored in the umbraco DB, but actually finding out that all your documents are in sound condition is a big undertaking, but a good idea for a future inhancement of the way courier checks the integraty of you data before processing it.
Also, @dominik try getting the latest version 2.1.1 from the project page here on Our, I saw a couple of errors like yours, working with prerelease code which is not in the final release
i download the package yesterday so i think i get the newest version or?
Where can i see the versioning number?
Also this error is not only appearing on one note Max. On each content item i try to transfer
oh the update is working i think - but i yesterday downloaded the package from umbraco.com
Now it takes about 5 minutes to transfer one simple page - is there any performance issue?
Also might help if you post the error message you are getting.
To find the version number for the one you downloaded, open the Umbraco.Courier2_Package.zip file in your downloads folder, then open the package.xml file. Right at the bottom in info > package > version is the version number.
If yours is not 2.1.1, download it from here:
http://nightly.umbraco.org/UmbracoCourier/
And try again :)
ok it is working but is really slow :-)
One content page takes 5 minutes until it is transferred
Well its good that it is fixed but that speed seems very strange! It took a second per node when I used courier.
@Per Ploug any ideas?
Hi,
I'm getting the same error as well. Just like what the error says, there is a problem with 'Document xxxxx Property Data'. However, I cannot find anything wrong with that page's property data. I checked the dependencies, Document Type, Macro alias...etc. Everything seems correct. And the worst thing is this the homepage, or parent root for many sub-pages. By doing Compare & Install in Courier Revision, I can see all the sub-pages + contents are already copied over. But because the homepage is not successfully copy over, nothing shows up under Content.
Any thought on fixing this? I'm thinking to copy Document Property Data manually from SQL. But where can I find that in SQL?
I'm on Umbraco 4.7.2 with Courier 2.7.1
Thanks
is working on a reply...