Index: /applications/editors/josm/plugins/reverter/src/reverter/ChangesetReverter.java
===================================================================
--- /applications/editors/josm/plugins/reverter/src/reverter/ChangesetReverter.java	(revision 34916)
+++ /applications/editors/josm/plugins/reverter/src/reverter/ChangesetReverter.java	(revision 34917)
@@ -24,4 +24,5 @@
 import org.openstreetmap.josm.data.osm.PrimitiveId;
 import org.openstreetmap.josm.data.osm.Relation;
+import org.openstreetmap.josm.data.osm.RelationMember;
 import org.openstreetmap.josm.data.osm.RelationMemberData;
 import org.openstreetmap.josm.data.osm.SimplePrimitiveId;
@@ -39,4 +40,5 @@
 import org.openstreetmap.josm.io.OsmTransferException;
 import org.openstreetmap.josm.tools.Logging;
+import org.openstreetmap.josm.tools.Utils;
 
 import reverter.corehacks.ChangesetDataSet;
@@ -110,7 +112,7 @@
 
     /**
-     * Checks if {@see ChangesetDataSetEntry} conforms to current RevertType
+     * Checks if {@link ChangesetDataSetEntry} conforms to current RevertType
      * @param entry entry to be checked
-     * @return <code>true</code> if {@see ChangesetDataSetEntry} conforms to current RevertType
+     * @return <code>true</code> if {@link ChangesetDataSetEntry} conforms to current RevertType
      */
     private boolean checkOsmChangeEntry(ChangesetDataSetEntry entry) {
@@ -128,4 +130,6 @@
      * creates a reverter for specific changeset and fetches initial data
      * @param changesetId changeset id
+     * @param revertType type of revert
+     * @param newLayer set to true if a new layer should be created
      * @param monitor progress monitor
      * @throws OsmTransferException if data transfer errors occur
@@ -185,5 +189,5 @@
     }
 
-    private void readObjectVersion(OsmServerMultiObjectReader rdr, PrimitiveId id, int version, ProgressMonitor progressMonitor)
+    private static void readObjectVersion(OsmServerMultiObjectReader rdr, PrimitiveId id, int version, ProgressMonitor progressMonitor)
             throws OsmTransferException {
         boolean readOK = false;
@@ -214,5 +218,4 @@
      * @throws OsmTransferException if data transfer errors occur
      */
-    @SuppressWarnings("unchecked")
     public void downloadObjectsHistory(ProgressMonitor progressMonitor) throws OsmTransferException {
         final OsmServerMultiObjectReader rdr = new OsmServerMultiObjectReader();
@@ -220,5 +223,5 @@
         progressMonitor.beginTask(tr("Downloading objects history"), updated.size()+deleted.size()+1);
         try {
-            for (HashSet<HistoryOsmPrimitive> collection : Arrays.asList(new HashSet[]{updated, deleted})) {
+            for (HashSet<HistoryOsmPrimitive> collection : Arrays.asList(updated, deleted)) {
                 for (HistoryOsmPrimitive entry : collection) {
                     PrimitiveId id = entry.getPrimitiveId();
@@ -279,5 +282,5 @@
     }
 
-    private static Conflict<? extends OsmPrimitive> CreateConflict(OsmPrimitive p, boolean isMyDeleted) {
+    private static Conflict<? extends OsmPrimitive> createConflict(OsmPrimitive p, boolean isMyDeleted) {
         switch (p.getType()) {
         case NODE:
@@ -337,4 +340,5 @@
     /**
      * Builds a list of commands that will revert the changeset
+     * @return list of commands
      *
      */
@@ -390,5 +394,5 @@
                     /* Don't create conflict if the object has to be deleted but has already been deleted */
                     && !(toDelete.contains(dp) && dp.isDeleted())) {
-                cmds.add(new ConflictAddCommand(layer.data, CreateConflict(dp,
+                cmds.add(new ConflictAddCommand(layer.data, createConflict(dp,
                         entry.getModificationType() == ChangesetModificationType.CREATED)));
                 conflicted.add(dp);
@@ -412,5 +416,5 @@
                                */
                 if (!conflicted.contains(p)) {
-                    cmds.add(new ConflictAddCommand(layer.data, CreateConflict(p, true)));
+                    cmds.add(new ConflictAddCommand(layer.data, createConflict(p, true)));
                     conflicted.add(p);
                 }
@@ -421,11 +425,11 @@
 
         // Create a Command to delete all marked objects
-        List<? extends OsmPrimitive> list;
-        list = OsmPrimitive.getFilteredList(toDelete, Relation.class);
-        if (!list.isEmpty()) cmds.add(new DeleteCommand(list));
-        list = OsmPrimitive.getFilteredList(toDelete, Way.class);
-        if (!list.isEmpty()) cmds.add(new DeleteCommand(list));
-        list = OsmPrimitive.getFilteredList(toDelete, Node.class);
-        if (!list.isEmpty()) cmds.add(new DeleteCommand(list));
+        Collection<? extends OsmPrimitive> collection;
+        collection = Utils.filteredCollection(toDelete, Relation.class);
+        if (!collection.isEmpty()) cmds.add(new DeleteCommand(collection));
+        collection = Utils.filteredCollection(toDelete, Way.class);
+        if (!collection.isEmpty()) cmds.add(new DeleteCommand(collection));
+        collection = Utils.filteredCollection(toDelete, Node.class);
+        if (!collection.isEmpty()) cmds.add(new DeleteCommand(collection));
         return cmds;
     }
Index: /applications/editors/josm/plugins/reverter/src/reverter/DataSetCommandMerger.java
===================================================================
--- /applications/editors/josm/plugins/reverter/src/reverter/DataSetCommandMerger.java	(revision 34916)
+++ /applications/editors/josm/plugins/reverter/src/reverter/DataSetCommandMerger.java	(revision 34917)
@@ -23,5 +23,5 @@
 
 /**
- * Modified {@see org.openstreetmap.josm.data.osm.DataSetMerger} that
+ * Modified {@link org.openstreetmap.josm.data.osm.DataSetMerger} that
  * produces list of commands instead of directly merging layers.
  *
@@ -40,4 +40,6 @@
     /**
      * constructor
+     * @param sourceDataSet the source Dataset for the merge
+     * @param targetDataSet the target Dataset for the merge
      */
     DataSetCommandMerger(DataSet sourceDataSet, DataSet targetDataSet) {
@@ -65,5 +67,5 @@
     }
 
-    private void mergePrimitive(OsmPrimitive source, OsmPrimitive target, OsmPrimitive newTarget) {
+    private static void mergePrimitive(OsmPrimitive source, OsmPrimitive target, OsmPrimitive newTarget) {
         newTarget.mergeFrom(source);
         newTarget.setOsmId(target.getId(), target.getVersion());
Index: /applications/editors/josm/plugins/reverter/src/reverter/MultiOsmReader.java
===================================================================
--- /applications/editors/josm/plugins/reverter/src/reverter/MultiOsmReader.java	(revision 34916)
+++ /applications/editors/josm/plugins/reverter/src/reverter/MultiOsmReader.java	(revision 34917)
@@ -14,5 +14,5 @@
 
 /**
- * Subclass of {@see org.openstreetmap.josm.io.OsmReader} that can handle multiple XML streams.
+ * Subclass of {@link org.openstreetmap.josm.io.OsmReader} that can handle multiple XML streams.
  *
  */
Index: /applications/editors/josm/plugins/reverter/src/reverter/OsmServerMultiObjectReader.java
===================================================================
--- /applications/editors/josm/plugins/reverter/src/reverter/OsmServerMultiObjectReader.java	(revision 34916)
+++ /applications/editors/josm/plugins/reverter/src/reverter/OsmServerMultiObjectReader.java	(revision 34917)
@@ -14,5 +14,4 @@
 import org.openstreetmap.josm.io.OsmServerReader;
 import org.openstreetmap.josm.io.OsmTransferException;
-import org.xml.sax.SAXException;
 
 public class OsmServerMultiObjectReader extends OsmServerReader {
@@ -24,5 +23,5 @@
 
     public void readObject(long id, int version, OsmPrimitiveType type, ProgressMonitor progressMonitor) throws OsmTransferException {
-        StringBuffer sb = new StringBuffer();
+        StringBuilder sb = new StringBuilder();
         sb.append(type.getAPIName());
         sb.append("/");
@@ -43,6 +42,5 @@
      * Method to parse downloaded objects
      * @return the data requested
-     * @throws SAXException in case of SAX error
-     * @throws IOException in case of I/O error
+     * @throws OsmTransferException in case of error
      */
     @Override
Index: /applications/editors/josm/plugins/reverter/src/reverter/ReverterPlugin.java
===================================================================
--- /applications/editors/josm/plugins/reverter/src/reverter/ReverterPlugin.java	(revision 34916)
+++ /applications/editors/josm/plugins/reverter/src/reverter/ReverterPlugin.java	(revision 34917)
@@ -11,10 +11,17 @@
 import org.openstreetmap.josm.plugins.PluginInformation;
 
+/**
+ * The reverter plugin
+ */
 public class ReverterPlugin extends Plugin {
-    static boolean reverterUsed = false;
+    static boolean reverterUsed;
+
+    /**
+     * Constructs a new {@code ReverterPlugin}.
+     * @param info plugin information
+     */
     public ReverterPlugin(PluginInformation info) {
         super(info);
         JMenu historyMenu = MainApplication.getMenu().dataMenu;
-        //MainMenu.add(historyMenu, new ObjectsHistoryAction());
         MainMenu.add(historyMenu, new RevertChangesetAction());
         UploadAction.registerUploadHook(new ReverterUploadHook(this));
Index: /applications/editors/josm/plugins/reverter/src/reverter/corehacks/ChangesetDataSet.java
===================================================================
--- /applications/editors/josm/plugins/reverter/src/reverter/corehacks/ChangesetDataSet.java	(revision 34916)
+++ /applications/editors/josm/plugins/reverter/src/reverter/corehacks/ChangesetDataSet.java	(revision 34917)
@@ -166,9 +166,9 @@
 
     /**
-     * Replies the {@see HistoryOsmPrimitive} with id <code>id</code> from this
+     * Replies the {@link HistoryOsmPrimitive} with id <code>id</code> from this
      * dataset. null, if there is no such primitive in the data set.
      *
      * @param id the id
-     * @return  the {@see HistoryOsmPrimitive} with id <code>id</code> from this
+     * @return  the {@link HistoryOsmPrimitive} with id <code>id</code> from this
      * dataset
      */
Index: /applications/editors/josm/plugins/reverter/src/reverter/corehacks/OsmServerChangesetReader.java
===================================================================
--- /applications/editors/josm/plugins/reverter/src/reverter/corehacks/OsmServerChangesetReader.java	(revision 34916)
+++ /applications/editors/josm/plugins/reverter/src/reverter/corehacks/OsmServerChangesetReader.java	(revision 34917)
@@ -54,5 +54,5 @@
      * @param query  the query specification. Must not be null.
      * @param monitor a progress monitor. Set to {@link NullProgressMonitor#INSTANCE} if null
-     * @return the list of changesets read from the server
+     * @return the list of changesets read from the server or {@code null}
      * @throws IllegalArgumentException thrown if query is null
      * @throws OsmTransferException thrown if something goes wrong w
@@ -65,5 +65,5 @@
         try {
             monitor.beginTask(tr("Reading changesets..."));
-            StringBuffer sb = new StringBuffer();
+            StringBuilder sb = new StringBuilder();
             sb.append("changesets?").append(query.getQueryString());
             InputStream in = getInputStream(sb.toString(), monitor.createSubTaskMonitor(1, true));
@@ -98,5 +98,5 @@
         try {
             monitor.beginTask(tr("Reading changeset {0} ...", id));
-            StringBuffer sb = new StringBuffer();
+            StringBuilder sb = new StringBuilder();
             sb.append("changeset/").append(id);
             InputStream in = getInputStream(sb.toString(), monitor.createSubTaskMonitor(1, true));
@@ -120,7 +120,7 @@
      * Reads the changeset with id <code>id</code> from the server
      *
-     * @param ids  the list of ids. Ignored if null. Only load changesets for ids &gt; 0.
+     * @param ids  the collection of ids. Ignored if null. Only load changesets for ids &gt; 0.
      * @param monitor the progress monitor. Set to {@link NullProgressMonitor#INSTANCE} if null
-     * @return the changeset read
+     * @return the list of changesets read or an empty list or null in case of errors
      * @throws OsmTransferException thrown if something goes wrong
      * @throws IllegalArgumentException if id &lt;= 0
@@ -143,5 +143,5 @@
                 }
                 i++;
-                StringBuffer sb = new StringBuffer();
+                StringBuilder sb = new StringBuilder();
                 sb.append("changeset/").append(id);
                 InputStream in = getInputStream(sb.toString(), monitor.createSubTaskMonitor(1, true));
@@ -175,5 +175,5 @@
      * @throws OsmTransferException thrown if something went wrong
      */
-    public ChangesetDataSet downloadChangeset(int id, ProgressMonitor monitor) throws IllegalArgumentException, OsmTransferException {
+    public ChangesetDataSet downloadChangeset(int id, ProgressMonitor monitor) throws OsmTransferException {
         if (id <= 0)
             throw new IllegalArgumentException(
@@ -184,5 +184,5 @@
         try {
             monitor.beginTask(tr("Downloading changeset content"));
-            StringBuffer sb = new StringBuffer();
+            StringBuilder sb = new StringBuilder();
             sb.append("changeset/").append(id).append("/download");
             InputStream in = getInputStream(sb.toString(), monitor.createSubTaskMonitor(1, true));
@@ -191,9 +191,6 @@
             monitor.setCustomText(tr("Downloading content for changeset {0} ...", id));
             OsmChangesetContentParser parser = new OsmChangesetContentParser(in);
-            ChangesetDataSet ds = parser.parse(monitor.createSubTaskMonitor(1, true));
-            return ds;
-        } catch (UnsupportedEncodingException e) {
-            throw new OsmTransferException(e);
-        } catch (XmlParsingException e) {
+            return parser.parse(monitor.createSubTaskMonitor(1, true));
+        } catch (UnsupportedEncodingException | XmlParsingException e) {
             throw new OsmTransferException(e);
         } finally {
