Index: trunk/src/org/openstreetmap/josm/io/OsmApi.java
===================================================================
--- trunk/src/org/openstreetmap/josm/io/OsmApi.java	(revision 17497)
+++ trunk/src/org/openstreetmap/josm/io/OsmApi.java	(revision 17498)
@@ -458,5 +458,5 @@
             String ret = "";
             try {
-                ret = sendRequest("PUT", "changeset/create", toXml(changeset), progressMonitor);
+                ret = sendPutRequest("changeset/create", toXml(changeset), progressMonitor);
                 changeset.setId(Integer.parseInt(ret.trim()));
                 changeset.setOpen(true);
@@ -493,10 +493,5 @@
             initialize(monitor);
             monitor.setCustomText(tr("Updating changeset {0}...", changeset.getId()));
-            sendRequest(
-                    "PUT",
-                    "changeset/" + changeset.getId(),
-                    toXml(changeset),
-                    monitor
-            );
+            sendPutRequest("changeset/" + changeset.getId(), toXml(changeset), monitor);
         } catch (ChangesetClosedException e) {
             e.setSource(ChangesetClosedException.Source.UPDATE_CHANGESET);
@@ -532,7 +527,6 @@
             monitor.beginTask(tr("Closing changeset..."));
             initialize(monitor);
-            /* send "\r\n" instead of empty string, so we don't send zero payload - works around bugs
-               in proxy software */
-            sendRequest("PUT", "changeset" + "/" + changeset.getId() + "/close", "\r\n", monitor);
+            // send "\r\n" instead of empty string, so we don't send zero payload - workaround bugs in proxy software
+            sendPutRequest("changeset/" + changeset.getId() + "/close", "\r\n", monitor);
             changeset.setOpen(false);
         } finally {
@@ -571,5 +565,5 @@
             monitor.indeterminateSubTask(
                     trn("Uploading {0} object...", "Uploading {0} objects...", list.size(), list.size()));
-            String diffUploadResponse = sendRequest("POST", "changeset/" + changeset.getId() + "/upload", diffUploadRequest, monitor);
+            String diffUploadResponse = sendPostRequest("changeset/" + changeset.getId() + "/upload", diffUploadRequest, monitor);
 
             // Process the response from the server
@@ -633,4 +627,14 @@
     public static String getAuthMethod() {
         return Config.getPref().get("osm-server.auth-method", "oauth");
+    }
+
+    protected final String sendPostRequest(String urlSuffix, String requestBody, ProgressMonitor monitor) throws OsmTransferException {
+        // Send a POST request that includes authentication credentials
+        return sendRequest("POST", urlSuffix, requestBody, monitor);
+    }
+
+    protected final String sendPutRequest(String urlSuffix, String requestBody, ProgressMonitor monitor) throws OsmTransferException {
+        // Send a PUT request that includes authentication credentials
+        return sendRequest("PUT", urlSuffix, requestBody, monitor);
     }
 
@@ -820,6 +824,5 @@
             .append(Utils.encodeUrl(text)).toString();
 
-        String response = sendRequest("POST", noteUrl, null, monitor, true, false);
-        return parseSingleNote(response);
+        return parseSingleNote(sendPostRequest(noteUrl, null, monitor));
     }
 
@@ -838,6 +841,5 @@
             .append(Utils.encodeUrl(comment)).toString();
 
-        String response = sendRequest("POST", noteUrl, null, monitor, true, false);
-        return parseSingleNote(response);
+        return parseSingleNote(sendPostRequest(noteUrl, null, monitor));
     }
 
@@ -860,6 +862,5 @@
         }
 
-        String response = sendRequest("POST", urlBuilder.toString(), null, monitor, true, false);
-        return parseSingleNote(response);
+        return parseSingleNote(sendPostRequest(urlBuilder.toString(), null, monitor));
     }
 
@@ -882,6 +883,5 @@
         }
 
-        String response = sendRequest("POST", urlBuilder.toString(), null, monitor, true, false);
-        return parseSingleNote(response);
+        return parseSingleNote(sendPostRequest(urlBuilder.toString(), null, monitor));
     }
 
