source: josm/trunk/src/org/openstreetmap/josm/io/OsmApiException.java @ 5241

Revision 3511, 3.0 KB checked in by stoecker, 21 months ago (diff)

fix #5410 - server error message hidden from user

  • Property svn:eol-style set to native
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.io;
3import static org.openstreetmap.josm.tools.I18n.tr;
4
5public class OsmApiException extends OsmTransferException {
6
7    private int responseCode;
8    private String errorHeader;
9    private String errorBody;
10    private String accessedUrl;
11
12    public OsmApiException() {
13        super();
14    }
15
16    public OsmApiException(int responseCode, String errorHeader, String errorBody) {
17        this.responseCode = responseCode;
18        this.errorHeader = errorHeader;
19        this.errorBody = errorBody;
20    }
21
22    public OsmApiException(String message, Throwable cause) {
23        super(message, cause);
24    }
25
26    public OsmApiException(String message) {
27        super(message);
28    }
29
30    public OsmApiException(Throwable cause) {
31        super(cause);
32    }
33
34    public int getResponseCode() {
35        return responseCode;
36    }
37
38    public void setResponseCode(int responseCode) {
39        this.responseCode = responseCode;
40    }
41
42    public String getErrorHeader() {
43        return errorHeader;
44    }
45
46    public void setErrorHeader(String errorHeader) {
47        this.errorHeader = errorHeader;
48    }
49
50    public String getErrorBody() {
51        return errorBody;
52    }
53
54    public void setErrorBody(String errorBody) {
55        this.errorBody = errorBody;
56    }
57
58    @Override
59    public String getMessage() {
60        StringBuilder sb = new StringBuilder();
61        sb.append("ResponseCode=")
62        .append(responseCode);
63        String eh = "";
64        try
65        {
66            if(errorHeader != null)
67                eh = tr(errorHeader.trim());
68            if (!eh.isEmpty()) {
69                sb.append(", Error Header=<")
70                .append(eh)
71                .append(">");
72            }
73        }
74        catch (Exception e) {
75        }
76        try
77        {
78            String eb = errorBody != null ? tr(errorBody.trim()) : "";
79            if (!eb.isEmpty() && !eb.equals(eh)) {
80                sb.append(", Error Body=<")
81                .append(eb)
82                .append(">");
83            }
84        }
85        catch (Exception e) {
86        }
87        return sb.toString();
88    }
89
90    /**
91     * Replies a message suitable to be displayed in a message dialog
92     *
93     * @return a message which is suitable to be displayed in a message dialog
94     */
95    public String getDisplayMessage() {
96        StringBuilder sb = new StringBuilder();
97        if (errorHeader != null) {
98            sb.append(tr(errorHeader));
99            sb.append(tr("(Code={0})", responseCode));
100        } else if (errorBody != null && !errorBody.trim().equals("")) {
101            errorBody = errorBody.trim();
102            sb.append(tr(errorBody));
103            sb.append(tr("(Code={0})", responseCode));
104        } else {
105            sb.append(tr("The server replied an error with code {0}.", responseCode));
106        }
107        return sb.toString();
108    }
109
110    public void setAccessedUrl(String url) {
111        this.accessedUrl = url;
112    }
113
114    public String getAccessedUrl() {
115        return accessedUrl;
116    }
117}
Note: See TracBrowser for help on using the repository browser.