##### Coverage Report - jp.co.y_net.amm.AppRequestCycleListener

Classes in this File | Line Coverage | Branch Coverage | Complexity

AppRequestCycleListener

0% | 0/34

0% | 0/16

2.0;2

1

     package jp.co.y_net.amm;

2

3

     import jp.co.y_net.amm.common.AppLogger;

4

5

     import org.apache.wicket.protocol.http.PageExpiredException;

6

     import org.apache.wicket.protocol.http.servlet.ResponseIOException;

7

     import org.apache.wicket.request.IRequestHandler;

8

     import org.apache.wicket.request.Url;

9

     import org.apache.wicket.request.cycle.IRequestCycleListener;

10

     import org.apache.wicket.request.cycle.RequestCycle;

11

12

     /**

13

      * Applicationクラス（PC版はWicketApplication）で設定する為の RequestCycleListener

14

      * エラーログの出力などを行う。

15

      *

16

      * @author k_inaba

17

      */

18

0

     public class AppRequestCycleListener implements IRequestCycleListener {

19

20

         public IRequestHandler onException(RequestCycle cycle, Exception ex) {

21

22

             /* エラー詳細出力 2013/06/25 K.Inaba */

23

0

             String pageName = "";

24

0

             if (cycle.getUrlRenderer().getBaseUrl().getSegments().size() > 0) {

25

0

                 pageName = cycle.getUrlRenderer().getBaseUrl().getSegments().get(0);

26

             }

27

             try {

28

0

                 String type = null;

29

0

                 if (ex instanceof PageExpiredException) { // 有効期限切れ

30

0

                     type = "1";

31

                 }

32

0

                 if (ex instanceof ResponseIOException) {

33

0

                     Throwable t = ex.getCause();

34

0

                     if (t != null

35

0

                             && "org.apache.catalina.connector.ClientAbortException".equals(t.getClass().getName())) {

36

                         /* IEが発生させる既知の処理中断の例外 */

37

0

                         type = "2";

38

                     }

39

                 }

40

0

                 if (type == null) {

41

0

                     type = "3";

42

                 }

43

0

                 if ("1".equals(type)) { // 有効期限切れ

44

0

                     AppLogger.info(pageName);

45

0

                     AppLogger.info(ex.getMessage());

46

47

0

                 } else if ("2".equals(type)) { // IEが発生させる既知の処理中断の例外(クライアントによる中断)

48

0

                     AppLogger.debug(pageName);

49

0

                     AppLogger.debug(ex.getMessage());

50

51

0

                 } else { /* 未知の問題 */

52

0

                     AppLogger.error(pageName);

53

0

                     AppLogger.error(ex);

54

                 }

55

56

0

             } catch (Exception e) {

57

                 /* エラーハンドリングで循環が発生しないように、極力シンプルな実装にする。 */

58

0

                 ex.printStackTrace();

59

             }

60

0

             return null;

61

         }

62

         @Override

63

         public void onExceptionRequestHandlerResolved(RequestCycle arg0, IRequestHandler arg1, Exception arg2) {

64

             /* 処理なし */

65

0

         }

66

     //    private static long timerRequest;

67

     //    private static String uri;

68

         @Override

69

         public void onBeginRequest(RequestCycle reqestCycle) { // RequestHandlerの解決直前に実行

70

             /* 処理時間測定開始 */

71

     //        TimeRecorder.startRequest(reqestCycle.getRequest().getUrl().toString());

72

     //        TimeRecorder.startSub("リクエスト受付");

73

     //        timerRequest = System.currentTimeMillis();

74

     //        uri = reqestCycle.getRequest().getUrl().toString();

75

     //        WebOpacLogger.info("計測開始 - [" + uri + "]-----------------------------------------------------------------");

76

77

0

         }

78

         @Override

79

         public void onEndRequest(RequestCycle reqestCycle) {

80

             /* 処理時間測定終了 */

81

     //        TimeRecorder.endRequest(reqestCycle.getRequest().getUrl().toString());

82

     //        long time = System.currentTimeMillis() - timerRequest;

83

     //        WebOpacLogger.info("計測終了 - " + time + "[ms] [" + uri + "]------------------------------------------------");

84

     //        timerRequest = 0;

85

     //        uri = "";

86

0

         }

87

         @Override

88

         public void onDetach(RequestCycle arg0) {

89

             /* 処理なし */

90

0

         }

91

         @Override

92

         public void onRequestHandlerExecuted(RequestCycle arg0, IRequestHandler arg1) {

93

             /* 処理なし */

94

0

         }

95

         @Override

96

         public void onRequestHandlerResolved(RequestCycle arg0, IRequestHandler arg1) {

97

             /* 処理なし */

98

0

         }

99

         @Override

100

         public void onRequestHandlerScheduled(RequestCycle arg0, IRequestHandler arg1) {

101

             /* 処理なし */

102

0

         }

103

         @Override

104

         public void onUrlMapped(RequestCycle arg0, IRequestHandler arg1, Url arg2) {

105

             /* 処理なし */

106

0

         }

107

     }