AI OnAI Off
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.
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)
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?