Upgrade from 4.5 to 6.1.6 Problem with users section
I have sucesfully upgraded a site from 4.5 to 6.1.6 following the standard steps.
I have updated the trees.config and applications.config to add the custom sections I have installed.
There is one final issue that i have no idea where the problem is.
When you click on a user name in the users section I get a YSOD:
Object reference not set to an instance of an object.
Description: An unhandled exception occurred during
the execution of the current web request. Please review the stack trace
for more information about the error and where it originated in the
code.
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
Source Error:
An unhandled exception was generated during the execution of the current
web request. Information regarding the origin and location of the
exception can be identified using the exception stack trace below.
Stack Trace:
[NullReferenceException: Object reference not set to an instance of an object.]
Umbraco.Core.Persistence.Repositories.TemplateRepository.PerformGet(Int32 id) in d:\temp\UmbracoV7Branch\src\Umbraco.Core\Persistence\Repositories\TemplateRepository.cs:74
Umbraco.Core.Persistence.Repositories.RepositoryBase`2.Get(TId id) in d:\temp\UmbracoV7Branch\src\Umbraco.Core\Persistence\Repositories\RepositoryBase.cs:94
Umbraco.Core.Persistence.Repositories.ContentTypeRepository.<PerformGet>b__0(DocumentTypeDto template) in d:\temp\UmbracoV7Branch\src\Umbraco.Core\Persistence\Repositories\ContentTypeRepository.cs:60
System.Linq.WhereSelectListIterator`2.MoveNext() +243
System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +535
System.Linq.Enumerable.ToList(IEnumerable`1 source) +79
Umbraco.Core.Persistence.Repositories.ContentTypeRepository.PerformGet(Int32 id) in d:\temp\UmbracoV7Branch\src\Umbraco.Core\Persistence\Repositories\ContentTypeRepository.cs:60
Umbraco.Core.Persistence.Repositories.RepositoryBase`2.Get(TId id) in d:\temp\UmbracoV7Branch\src\Umbraco.Core\Persistence\Repositories\RepositoryBase.cs:94
Umbraco.Core.Persistence.Repositories.<PerformGetAll>d__2.MoveNext() in d:\temp\UmbracoV7Branch\src\Umbraco.Core\Persistence\Repositories\ContentTypeRepository.cs:90
Umbraco.Core.Persistence.Repositories.RepositoryBase`2.GetAll(TId[] ids) in d:\temp\UmbracoV7Branch\src\Umbraco.Core\Persistence\Repositories\RepositoryBase.cs:156
Umbraco.Core.Services.ContentTypeService.GetAllContentTypes(Int32[] ids) in d:\temp\UmbracoV7Branch\src\Umbraco.Core\Services\ContentTypeService.cs:88
umbraco.cms.businesslogic.web.DocumentType.GetAllAsList() +78
umbraco.cms.presentation.user.EditUser.setupChannel() +124
umbraco.cms.presentation.user.EditUser.Page_Load(Object sender, EventArgs e) +3190
umbraco.BasePages.BasePage.OnLoad(EventArgs e) +18
System.Web.UI.Control.LoadRecursive() +70
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3177
Does anyone have any ideas why the Users section would be broken? As far as i know the database upgrade went as expected on each upgrade 4.5.1 - 4.8.1 - 4.9.1 - 6.1.6
Look like it has something todo with the content channels, do you have these setup for users? Maybe it was setup and the doctype it was using has been removed...
Content channels allow users to post content from word/livewriter/... yeah you can probably do that but don't know where it's stored, so have a quick look in the sourcecode
So I downloaded the source and compiled it and there seems to be an issue in the TemplateRepository.cs file in PerformGet. I'm not 100% sure what the whole file does but the error occurs in here.
Basically when this query is run it does:
var sql = GetBaseQuery(false); sql.Where(GetBaseWhereClause(), new { Id = id }); var dto = Database.Fetch<TemplateDto, NodeDto>(sql).FirstOrDefault();
Which looks like it returns a TemplateDto which is populated as i would expect but in this case the Master value is 0
When it gets to line 71:
if (dto.Master.HasValue)
This works fine because the value is == 0 not == null
directly following this the following code executes:
var masterTemplate = Get(dto.Master.Value); template.MasterTemplateAlias = masterTemplate.Alias; template.MasterTemplateId = new Lazy<int>(() => dto.Master.Value);
This obviously tries to get a template with an id of 0 which returns a null value so when:
masterTemplate.Alias;
is called it causes a Null Ref exception.
I now know this is caused because my cmsTemplate contains a record where the master is == 0 what i dont know is what this value should be. In that table i seem to have a bunch that are 0 some that are NULL and 2 that actually have a value.
So i guess the question is Bug or not? I'm not sure what the process of upgrading has done in the database through the process outlined above so i cant really call if this would happen again to someone else or if this is a one off.
I guess the question is, do i patch the code so it takes in to account 0 being in the master field or do i change all the values in my DB to NULL?
I first noticed the problem under the Document Types node under Settings. It just didn't expand and my nodes in the contenttree would fail (The ones with master=0 instead of master=NULL)..
Upgrade from 4.5 to 6.1.6 Problem with users section
I have sucesfully upgraded a site from 4.5 to 6.1.6 following the standard steps.
I have updated the trees.config and applications.config to add the custom sections I have installed.
There is one final issue that i have no idea where the problem is.
When you click on a user name in the users section I get a YSOD:
Object reference not set to an instance of an object.
Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.
Exception Details: System.NullReferenceException: Object reference not set to an instance of an object.
Source Error:
An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.
Stack Trace:
Does anyone have any ideas why the Users section would be broken? As far as i know the database upgrade went as expected on each upgrade 4.5.1 - 4.8.1 - 4.9.1 - 6.1.6
Thanks
Jon
Comment author was deleted
Look like it has something todo with the content channels, do you have these setup for users? Maybe it was setup and the doctype it was using has been removed...
Thanks Tim
I'm not sure what content channels are, could you elaborate a little?
Is there a sql statement i can run on the DB to check for these links so i can manually remove them if they are causing the problem?
Cheers
Jon
Comment author was deleted
Content channels allow users to post content from word/livewriter/... yeah you can probably do that but don't know where it's stored, so have a quick look in the sourcecode
Hey Tim
So I downloaded the source and compiled it and there seems to be an issue in the TemplateRepository.cs file in PerformGet. I'm not 100% sure what the whole file does but the error occurs in here.
Basically when this query is run it does:
Which looks like it returns a TemplateDto which is populated as i would expect but in this case the Master value is 0
When it gets to line 71:
This works fine because the value is == 0 not == null
directly following this the following code executes:
This obviously tries to get a template with an id of 0 which returns a null value so when:
is called it causes a Null Ref exception.
I now know this is caused because my cmsTemplate contains a record where the master is == 0 what i dont know is what this value should be. In that table i seem to have a bunch that are 0 some that are NULL and 2 that actually have a value.
So i guess the question is Bug or not? I'm not sure what the process of upgrading has done in the database through the process outlined above so i cant really call if this would happen again to someone else or if this is a one off.
I guess the question is, do i patch the code so it takes in to account 0 being in the master field or do i change all the values in my DB to NULL?
Cheers
Jon
I'm experiencing the same thing here..
Did you ever resolve this?
Hi Niels
I think i ended up changing the 0 value to NULL.
Once I'd done that the error did not come back.
Hope that helps :)
Jon
Cool, I'll see if that can fix things.
YES! It worked.
I first noticed the problem under the Document Types node under Settings. It just didn't expand and my nodes in the contenttree would fail (The ones with master=0 instead of master=NULL)..
Updating the cmsTemplate table fixed this!
Thanx, Jon!
is working on a reply...