From 75390f15821eed29e5183e24f5505bb1d484e146 Mon Sep 17 00:00:00 2001 From: Sebastien Ros Date: Fri, 14 May 2010 17:06:28 -0700 Subject: [PATCH] Corrected Page Expires bug Intercept exceptions at event base, to prevent succeeding events to be ignored Corrected PageService.Get() to retrieve only Page content items --HG-- branch : dev --- .../Modules/Orchard.Pages/Services/PageService.cs | 6 +++--- src/Orchard/Events/DefaultOrchardEventBus.cs | 10 +++++++++- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/src/Orchard.Web/Modules/Orchard.Pages/Services/PageService.cs b/src/Orchard.Web/Modules/Orchard.Pages/Services/PageService.cs index 22160fcbf..15d09e345 100644 --- a/src/Orchard.Web/Modules/Orchard.Pages/Services/PageService.cs +++ b/src/Orchard.Web/Modules/Orchard.Pages/Services/PageService.cs @@ -35,11 +35,11 @@ namespace Orchard.Pages.Services { public IEnumerable Get(PageStatus status) { switch (status) { case PageStatus.All: - return _contentManager.Query(VersionOptions.Latest).List(); + return _contentManager.Query(PageDriver.ContentType.Name).Join().ForVersion(VersionOptions.Latest).List().AsPart(); case PageStatus.Published: - return _contentManager.Query(VersionOptions.Published).List(); + return _contentManager.Query(PageDriver.ContentType.Name).Join().ForVersion(VersionOptions.Published).List().AsPart(); case PageStatus.Offline: - return _contentManager.Query(VersionOptions.Latest).Where(ci => !ci.ContentItemVersionRecord.Published).List(); + return _contentManager.Query(PageDriver.ContentType.Name).Join().ForVersion(VersionOptions.Latest).Where(ci => !ci.ContentItemVersionRecord.Published).List().AsPart(); default: return Enumerable.Empty(); } diff --git a/src/Orchard/Events/DefaultOrchardEventBus.cs b/src/Orchard/Events/DefaultOrchardEventBus.cs index 8fac5d6ab..d8eebfac4 100644 --- a/src/Orchard/Events/DefaultOrchardEventBus.cs +++ b/src/Orchard/Events/DefaultOrchardEventBus.cs @@ -36,7 +36,15 @@ namespace Orchard.Events { var eventHandlers = _eventHandlers(); foreach (var eventHandler in eventHandlers) { - TryInvoke(eventHandler, interfaceName, methodName, eventData); + try { + TryInvoke(eventHandler, interfaceName, methodName, eventData); + } + catch(Exception ex) { + Logger.Error(ex, "{2} thrown from {0} by {1}", + interfaceName + "." +methodName, + eventHandler.GetType().FullName, + ex.GetType().Name); + } } }