Changeset 2289 in josm for trunk/src/org/openstreetmap/josm/tools/ExceptionUtil.java
- Timestamp:
- 2009-10-15T04:45:06+02:00 (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/tools/ExceptionUtil.java
r2246 r2289 10 10 import java.net.URL; 11 11 import java.net.UnknownHostException; 12 import java.text.DateFormat; 13 import java.text.ParseException; 14 import java.text.SimpleDateFormat; 15 import java.util.Date; 12 16 import java.util.regex.Matcher; 13 17 import java.util.regex.Pattern; 14 18 15 19 import org.openstreetmap.josm.Main; 20 import org.openstreetmap.josm.actions.search.SearchCompiler.ParseError; 16 21 import org.openstreetmap.josm.data.osm.OsmPrimitiveType; 17 22 import org.openstreetmap.josm.io.OsmApi; … … 95 100 + "dataset violates a precondition.<br>" + "The error message is:<br>" + "{0}" + "</html>", e 96 101 .getMessage().replace("&", "&").replace("<", "<").replace(">", ">")); 102 return msg; 103 } 104 105 /** 106 * Explains an error due to a 409 conflict 107 * 108 * @param e the exception 109 */ 110 public static String explainConflict(OsmApiException e) { 111 e.printStackTrace(); 112 String msg = e.getErrorHeader(); 113 if (msg != null) { 114 String pattern = "The changeset (\\d+) was closed at (.*)"; 115 Pattern p = Pattern.compile(pattern); 116 Matcher m = p.matcher(msg); 117 if (m.matches()) { 118 long changesetId = Long.parseLong(m.group(1)); 119 // Example: Tue Oct 15 10:00:00 UTC 2009 120 DateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy"); 121 Date closeDate = null; 122 try { 123 closeDate = formatter.parse(m.group(2)); 124 } catch(ParseException ex) { 125 System.err.println(tr("Failed to parse date ''{0}'' replied by server.", m.group(2))); 126 ex.printStackTrace(); 127 } 128 if (closeDate == null) { 129 msg = tr( 130 "<html>Closing of changeset <strong>{0}</strong> failed <br>because it has already been closed.</html>", 131 changesetId 132 ); 133 } else { 134 SimpleDateFormat dateFormat = new SimpleDateFormat(); 135 msg = tr( 136 "<html>Closing of changeset <strong>{0}</strong> failed<br>" 137 +" because it has already been closed on {1}.</html>", 138 changesetId, 139 dateFormat.format(closeDate) 140 ); 141 } 142 return msg; 143 } 144 msg = tr( 145 "<html>The server reported that it has detected a conflict.<br>" + 146 "Error message (untranslated):<br>" + 147 "{0}", 148 msg 149 ); 150 } 151 msg = tr( 152 "<html>The server reported that it has detected a conflict.</html>" 153 ); 97 154 return msg; 98 155 }
Note:
See TracChangeset
for help on using the changeset viewer.