1
2
3
4
5
6 package pt.digitalis.dif.presentation.entities.system.error;
7
8 import java.util.Map;
9
10 import pt.digitalis.dif.controller.ExceptionHandlers;
11 import pt.digitalis.dif.controller.interfaces.IDIFContext;
12 import pt.digitalis.dif.dem.annotations.entities.StageDefinition;
13 import pt.digitalis.dif.dem.annotations.stage.Context;
14 import pt.digitalis.dif.dem.annotations.stage.ExceptionHandler;
15 import pt.digitalis.dif.dem.annotations.stage.Execute;
16 import pt.digitalis.dif.dem.annotations.stage.InjectMessages;
17 import pt.digitalis.dif.dem.annotations.stage.View;
18 import pt.digitalis.dif.dem.annotations.stage.controller.DispatcherMode;
19 import pt.digitalis.dif.utils.extensions.cms.exception.ContentItemNotFoundException;
20 import pt.digitalis.dif.utils.extensions.cms.exception.ContentManagerException;
21
22
23
24
25
26 @StageDefinition(name = "Content Manager Error Page", service = "errorhandlingservice")
27 @ExceptionHandler(exceptions = "pt.digitalis.dif.utils.extensions.cms.exception.ContentManagerException")
28 @View(target = "internal/errorHandlerView.jsp")
29 @DispatcherMode(authenticate = false, authorize = false)
30 public class ContentManagerErrorStage extends AbstractErrorHandler {
31
32
33 @Context
34 protected IDIFContext context;
35
36
37 @InjectMessages
38 protected Map<String, String> messages;
39
40
41
42
43 @Execute
44 protected void execute()
45 {
46 Exception exception = (Exception) context.getRequest().getAttribute(
47 ExceptionHandlers.RAISED_EXCEPTION_ATTRIBUTE);
48
49 exception = getExceptionWithinStack(ContentManagerException.class, exception);
50
51 if (exception != null)
52 {
53 if (exception instanceof ContentItemNotFoundException)
54 {
55 this.context.addStageResult("messageTitle", messages.get("contentNotFoundTitle"));
56 this.context.addStageResult("messageContent", messages.get("contentNotFoundMessage"));
57 }
58 }
59 }
60 }