London Dev Meetup Rescheduled! Due to unavoidable reasons, the event has been moved to 21st May. Speakers remain the same—any changes will be communicated. Seats are limited—register here to secure your spot!

Possible bug with EPiServer.Blog

Vote:
 

We are using EPiServer.Blog and have encountered a problem when republishing the root page; an exception is thrown:

[ArgumentNullException: Parameter has no page set
Parameter name: pageLink]
   EPiServer.DataFactory.GetPage(PageReference pageLink, ILanguageSelector selector) +290
   EPiServer.Blog.EventHandlers.PublishingPage(Object sender, PageEventArgs e) +129
   EPiServer.PageEventHandler.Invoke(Object sender, PageEventArgs e) +0
   EPiServer.Core.PageStoreBase.RaiseCancellablePageEvent(Object key, String defaultReason, PageEventArgs eventArgs) +74
   EPiServer.DataFactory.Save(PageData page, SaveAction action, AccessLevel access) +295

 

This is cause by EPiServer.Blog.EventHandlers.PublishingPage(object sender, PageEventArgs e)

private void PublishingPage(object sender, PageEventArgs e)
{
    if (((!this.IsImport() 
	    && (e.Page != null)) 
	    && (e.Page.IsMasterLanguageBranch 
	    && (BlogFactory.DataFactory.GetPage(e.Page.ParentLink)["BlogStart"] != null))) 
	    && string.Equals(e.Page.PageTypeName, Configuration.ItemPageTypeName, StringComparison.OrdinalIgnoreCase))
    {
        ...

When republishing the root page "BlogFactory.DataFactory.GetPage(e.Page.ParentLink)" will throw an exception as root page has no parent. Can you confirm if this is a bug?

 

#56226
Jan 12, 2012 15:36
Vote:
 

Yes it appears so. The event will fire for every page publish, including the root page.

As you stated, the root page will never have a parent, so e.Page.ParentLink will be null. Hence the ArgumentNullException thrown by the GetPage method.

I would copy all the code from EPiServer.Blog.EventHandlers into another module, and register that in web.config instead. You can then amend the code within the PublishingPage method to perform a check to ascertain whether it is the root page.

#56294
Jan 17, 2012 0:04
Vote:
 

This issue has been added as bug 75945

While waiting for the next (fixed) release, your advice, Tom, should work nicely :)

#56364
Edited, Jan 19, 2012 12:29
Vote:
 

Thanks Tom, your answer helped me

#60207
Jul 25, 2012 16:55
This thread is locked and should be used for reference only. Please use the Episerver CMS 7 and earlier versions forum to open new discussions.
* You are NOT allowed to include any hyperlinks in the post because your account hasn't associated to your company. User profile should be updated.