01: /*
02: * Licensed to the Apache Software Foundation (ASF) under one or more
03: * contributor license agreements. See the NOTICE file distributed with
04: * this work for additional information regarding copyright ownership.
05: * The ASF licenses this file to You under the Apache License, Version 2.0
06: * (the "License"); you may not use this file except in compliance with
07: * the License. You may obtain a copy of the License at
08: *
09: * http://www.apache.org/licenses/LICENSE-2.0
10: *
11: * Unless required by applicable law or agreed to in writing, software
12: * distributed under the License is distributed on an "AS IS" BASIS,
13: * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14: * See the License for the specific language governing permissions and
15: * limitations under the License.
16: *
17: * $Header:$
18: */
19: package org.apache.beehive.netui.pageflow;
20:
21: import javax.servlet.http.HttpServletResponse;
22: import java.io.IOException;
23:
24: /**
25: * Exception thrown when an action marked with the
26: * {@link org.apache.beehive.netui.pageflow.annotations.Jpf.Action#preventDoubleSubmit @Jpf.Action(preventDoubleSubmit=...}
27: * annotation attribute has been submitted to more than once.
28: */
29: public class DoubleSubmitException extends PageFlowException implements
30: ResponseErrorCodeSender {
31: DoubleSubmitException(String actionName, FlowController fc) {
32: super (actionName, fc);
33: }
34:
35: protected Object[] getMessageArgs() {
36: return new Object[] { getActionName(), getFlowControllerURI() };
37: }
38:
39: protected String[] getMessageParts() {
40: return new String[] { "A double-submit occurred for action ",
41: " in page flow ", "." };
42: }
43:
44: public void sendResponseErrorCode(HttpServletResponse response)
45: throws IOException {
46: response.sendError(HttpServletResponse.SC_BAD_REQUEST,
47: getLocalizedMessage());
48: }
49:
50: /**
51: * Tell whether the root cause may be session expiration in cases where the requested session ID is different than
52: * the actual session ID. In this case, the answer is <code>true</code>.
53: */
54: public boolean causeMayBeSessionExpiration() {
55: return true;
56: }
57: }
|