Index: applications/editors/josm/plugins/routes/build.xml
===================================================================
--- applications/editors/josm/plugins/routes/build.xml	(revision 33531)
+++ applications/editors/josm/plugins/routes/build.xml	(revision 33532)
@@ -2,5 +2,5 @@
 <project name="routes" default="dist" basedir=".">
     <property name="commit.message" value="Changed the constructor signature of the plugin main class"/>
-    <property name="plugin.main.version" value="10827"/>
+    <property name="plugin.main.version" value="12662"/>
     <property name="josm" location="../../core/dist/josm-custom.jar"/>
     <property name="plugin.dist.dir" value="../../dist"/>
Index: applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RouteDefinition.java
===================================================================
--- applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RouteDefinition.java	(revision 33531)
+++ applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RouteDefinition.java	(revision 33532)
@@ -3,8 +3,8 @@
 import java.awt.Color;
 
-import org.openstreetmap.josm.actions.search.SearchCompiler;
-import org.openstreetmap.josm.actions.search.SearchCompiler.Match;
-import org.openstreetmap.josm.actions.search.SearchCompiler.ParseError;
 import org.openstreetmap.josm.data.osm.OsmPrimitive;
+import org.openstreetmap.josm.data.osm.search.SearchParseError;
+import org.openstreetmap.josm.data.osm.search.SearchCompiler;
+import org.openstreetmap.josm.data.osm.search.SearchCompiler.Match;
 
 public class RouteDefinition {
@@ -21,5 +21,5 @@
         try {
             match = SearchCompiler.compile(expression);
-        } catch (ParseError e) {
+        } catch (SearchParseError e) {
             match = new SearchCompiler.Never();
             e.printStackTrace();
Index: applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RouteLayer.java
===================================================================
--- applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RouteLayer.java	(revision 33531)
+++ applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RouteLayer.java	(revision 33532)
@@ -21,4 +21,5 @@
 import org.openstreetmap.josm.data.osm.event.DatasetEventManager.FireMode;
 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.MapView;
 import org.openstreetmap.josm.gui.layer.Layer;
@@ -33,128 +34,129 @@
 public class RouteLayer extends Layer implements DataSetListenerAdapter.Listener {
 
-    private final PathPainter pathPainter;
-    private final PathBuilder pathBuilder = new PathBuilder();
-    private final List<RouteDefinition> routes = new ArrayList<>();
-    private volatile boolean datasetChanged = true;
+	private final PathPainter pathPainter;
+	private final PathBuilder pathBuilder = new PathBuilder();
+	private final List<RouteDefinition> routes = new ArrayList<>();
+	private volatile boolean datasetChanged = true;
 
-    public RouteLayer(RoutesXMLLayer xmlLayer) {
-        super(xmlLayer.getName());
+	public RouteLayer(RoutesXMLLayer xmlLayer) {
+		super(xmlLayer.getName());
 
-        int index = 0;
-        for (RoutesXMLRoute route:xmlLayer.getRoute()) {
-            if (route.isEnabled()) {
-                Color color = ColorHelper.html2color(route.getColor());
-                if (color == null) {
-                    color = Color.RED;
-                    System.err.printf("Routes plugin - unable to convert color (%s)\n", route.getColor());
-                }
-                routes.add(new RouteDefinition(index++, color, route.getPattern()));
-            }
-        }
+		int index = 0;
+		for (RoutesXMLRoute route:xmlLayer.getRoute()) {
+			if (route.isEnabled()) {
+				Color color = ColorHelper.html2color(route.getColor());
+				if (color == null) {
+					color = Color.RED;
+					System.err.printf("Routes plugin - unable to convert color (%s)\n", route.getColor());
+				}
+				routes.add(new RouteDefinition(index++, color, route.getPattern()));
+			}
+		}
 
-        if ("wide".equals(Main.pref.get("routes.painter"))) {
-            pathPainter = new WideLinePainter(this);
-        } else {
-            pathPainter = new NarrowLinePainter(this);
-        }
+		if ("wide".equals(Main.pref.get("routes.painter"))) {
+			pathPainter = new WideLinePainter(this);
+		} else {
+			pathPainter = new NarrowLinePainter(this);
+		}
 
-        DatasetEventManager.getInstance().addDatasetListener(new DataSetListenerAdapter(this), FireMode.IMMEDIATELY);
-    }
+		DatasetEventManager.getInstance().addDatasetListener(new DataSetListenerAdapter(this), FireMode.IMMEDIATELY);
+	}
 
-    @Override
-    public Icon getIcon() {
-        return ImageProvider.get("layer", "osmdata_small");
-    }
+	@Override
+	public Icon getIcon() {
+		return ImageProvider.get("layer", "osmdata_small");
+	}
 
-    @Override
-    public Object getInfoComponent() {
-        return null;
-    }
+	@Override
+	public Object getInfoComponent() {
+		return null;
+	}
 
-    @Override
-    public Action[] getMenuEntries() {
-        return new Action[0];
-    }
+	@Override
+	public Action[] getMenuEntries() {
+		return new Action[0];
+	}
 
-    @Override
-    public String getToolTipText() {
-        return "Hiking routes";
-    }
+	@Override
+	public String getToolTipText() {
+		return "Hiking routes";
+	}
 
-    @Override
-    public boolean isMergable(Layer other) {
-        return false;
-    }
+	@Override
+	public boolean isMergable(Layer other) {
+		return false;
+	}
 
-    @Override
-    public void mergeFrom(Layer from) {
-        // Merging is not supported
-    }
+	@Override
+	public void mergeFrom(Layer from) {
+		// Merging is not supported
+	}
 
-    private void addRelation(Relation relation, RouteDefinition route) {
-        for (RelationMember member:relation.getMembers()) {
-            if (member.getMember() instanceof Way) {
-                Way way = (Way)member.getMember();
-                pathBuilder.addWay(way, route);
-            }
-        }
-    }
+	private void addRelation(Relation relation, RouteDefinition route) {
+		for (RelationMember member:relation.getMembers()) {
+			if (member.getMember() instanceof Way) {
+				Way way = (Way)member.getMember();
+				pathBuilder.addWay(way, route);
+			}
+		}
+	}
 
-    @Override
-    public void paint(Graphics2D g, MapView mv, Bounds bounds) {
+	@Override
+	public void paint(Graphics2D g, MapView mv, Bounds bounds) {
 
-        DataSet dataset = Main.getLayerManager().getEditDataSet();
+		DataSet dataset = MainApplication.getLayerManager().getEditDataSet();
 
-        if (dataset == null) {
-            return;
-        }
+		if (dataset == null) {
+			return;
+		}
 
-        if (datasetChanged) {
-            datasetChanged = false;
-            pathBuilder.clear();
+		if (datasetChanged) {
+			datasetChanged = false;
+			pathBuilder.clear();
 
-            for (Relation relation:dataset.getRelations()) {
-                for (RouteDefinition route:routes) {
-                    if (route.matches(relation)) {
-                        addRelation(relation, route);
-                    }
-                }
-            }
+			for (Relation relation:dataset.getRelations()) {
+				for (RouteDefinition route:routes) {
+					if (route.matches(relation)) {
+						addRelation(relation, route);
+					}
+				}
+			}
 
-            for (Way way:dataset.getWays()) {
-                for (RouteDefinition route:routes) {
-                    if (route.matches(way)) {
-                        pathBuilder.addWay(way, route);
-                    }
-                }
-            }
-        }
+			for (Way way:dataset.getWays()) {
+				for (RouteDefinition route:routes) {
+					if (route.matches(way)) {
+						pathBuilder.addWay(way, route);
+					}
+				}
+			}
+		}
 
-        Stroke stroke = g.getStroke();
-        Color color   = g.getColor();
-        for (ConvertedWay way:pathBuilder.getConvertedWays()) {
-            pathPainter.drawWay(way, mv, g);
-        }
-        g.setStroke(stroke);
-        g.setColor(color);
+		Stroke stroke = g.getStroke();
+		Color color   = g.getColor();
+		for (ConvertedWay way:pathBuilder.getConvertedWays()) {
+			pathPainter.drawWay(way, mv, g);
+		}
+		g.setStroke(stroke);
+		g.setColor(color);
 
-    }
+	}
 
-    @Override
-    public void visitBoundingBox(BoundingXYVisitor v) {
+	@Override
+	public void visitBoundingBox(BoundingXYVisitor v) {
 
-    }
+	}
 
-    public List<RouteDefinition> getRoutes() {
-        return routes;
-    }
+	public List<RouteDefinition> getRoutes() {
+		return routes;
+	}
 
-    public void processDatasetEvent(AbstractDatasetChangedEvent event) {
-        datasetChanged = true;
-    }
+	@Override
+	public void processDatasetEvent(AbstractDatasetChangedEvent event) {
+		datasetChanged = true;
+	}
 
-    @Override
-    public synchronized void destroy() {
-        /* layer is reused, don't destroy it at all */
-    }
+	@Override
+	public synchronized void destroy() {
+		/* layer is reused, don't destroy it at all */
+	}
 }
Index: applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RoutesPlugin.java
===================================================================
--- applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RoutesPlugin.java	(revision 33531)
+++ applications/editors/josm/plugins/routes/src/org/openstreetmap/josm/plugins/routes/RoutesPlugin.java	(revision 33532)
@@ -14,5 +14,5 @@
 import javax.xml.bind.Unmarshaller;
 
-import org.openstreetmap.josm.Main;
+import org.openstreetmap.josm.gui.MainApplication;
 import org.openstreetmap.josm.gui.layer.Layer;
 import org.openstreetmap.josm.gui.layer.LayerManager.LayerAddEvent;
@@ -25,89 +25,90 @@
 import org.openstreetmap.josm.plugins.routes.xml.Routes;
 import org.openstreetmap.josm.plugins.routes.xml.RoutesXMLLayer;
+import org.openstreetmap.josm.tools.Logging;
 
 public class RoutesPlugin extends Plugin implements LayerChangeListener {
 
-    private final List<RouteLayer> routeLayers = new ArrayList<>();
+	private final List<RouteLayer> routeLayers = new ArrayList<>();
 
-    public RoutesPlugin(PluginInformation info) {
-        super(info);
-        Main.getLayerManager().addLayerChangeListener(this);
+	public RoutesPlugin(PluginInformation info) {
+		super(info);
+		MainApplication.getLayerManager().addLayerChangeListener(this);
 
-        File routesFile = new File(getPluginDir() + File.separator + "routes.xml");
-        if (!routesFile.exists()) {
-            Main.info("File with route definitions doesn't exist, using default");
+		File routesFile = new File(getPluginDir() + File.separator + "routes.xml");
+		if (!routesFile.exists()) {
+			Logging.info("File with route definitions doesn't exist, using default");
 
-            try {
-                routesFile.getParentFile().mkdir();
-                try (
-                        OutputStream outputStream = new FileOutputStream(routesFile);
-                        InputStream inputStream = Routes.class.getResourceAsStream("routes.xml");
-                        ) {
-                    byte[] b = new byte[512];
-                    int read;
-                    while ((read = inputStream.read(b)) != -1) {
-                        outputStream.write(b, 0, read);
-                    }
-                }
-            } catch (IOException e) {
-                Main.error(e);
-            }
-        }
+			try {
+				routesFile.getParentFile().mkdir();
+				try (
+						OutputStream outputStream = new FileOutputStream(routesFile);
+						InputStream inputStream = Routes.class.getResourceAsStream("routes.xml");
+						) {
+					byte[] b = new byte[512];
+					int read;
+					while ((read = inputStream.read(b)) != -1) {
+						outputStream.write(b, 0, read);
+					}
+				}
+			} catch (IOException e) {
+				Logging.error(e);
+			}
+		}
 
-        try {
-            JAXBContext context = JAXBContext.newInstance(
-                    Routes.class.getPackage().getName(), Routes.class.getClassLoader());
-            Unmarshaller unmarshaller = context.createUnmarshaller();
-            Routes routes = (Routes)unmarshaller.unmarshal(
-                    new FileInputStream(getPluginDir() + File.separator + "routes.xml"));
-            for (RoutesXMLLayer layer:routes.getLayer()) {
-                if (layer.isEnabled()) {
-                    routeLayers.add(new RouteLayer(layer));
-                }
-            }
-        } catch (Exception e) {
-            e.printStackTrace();
-        }
-    }
+		try {
+			JAXBContext context = JAXBContext.newInstance(
+					Routes.class.getPackage().getName(), Routes.class.getClassLoader());
+			Unmarshaller unmarshaller = context.createUnmarshaller();
+			Routes routes = (Routes)unmarshaller.unmarshal(
+					new FileInputStream(getPluginDir() + File.separator + "routes.xml"));
+			for (RoutesXMLLayer layer:routes.getLayer()) {
+				if (layer.isEnabled()) {
+					routeLayers.add(new RouteLayer(layer));
+				}
+			}
+		} catch (Exception e) {
+			e.printStackTrace();
+		}
+	}
 
-    public void activeLayerChange(Layer oldLayer, Layer newLayer) {
-        // Do nothing
-    }
+	public void activeLayerChange(Layer oldLayer, Layer newLayer) {
+		// Do nothing
+	}
 
-    @Override
-    public void layerAdded(LayerAddEvent e) {
-        Layer layer = e.getAddedLayer();
-        if (layer instanceof OsmDataLayer) {
-            for (RouteLayer routeLayer : routeLayers) {
-                if (!e.getSource().containsLayer(routeLayer)) {
-                    SwingUtilities.invokeLater(() -> {
-                        e.getSource().addLayer(routeLayer);
-                    });
-                }
-            }
-        }
-    }
+	@Override
+	public void layerAdded(LayerAddEvent e) {
+		Layer layer = e.getAddedLayer();
+		if (layer instanceof OsmDataLayer) {
+			for (RouteLayer routeLayer : routeLayers) {
+				if (!e.getSource().containsLayer(routeLayer)) {
+					SwingUtilities.invokeLater(() -> {
+						e.getSource().addLayer(routeLayer);
+					});
+				}
+			}
+		}
+	}
 
-    @Override
-    public void layerRemoving(LayerRemoveEvent e) {
-        for (Layer layer : e.getSource().getLayers()) {
-            if (layer instanceof OsmDataLayer)  {
-                return; /* at least one OSM layer left, do nothing */
-            }
-        }
-        if(!e.isLastLayer()) {
-            SwingUtilities.invokeLater(() -> {
-                for (RouteLayer routeLayer : routeLayers) {
-                    if (e.getSource().containsLayer(routeLayer)) {
-                        e.getSource().removeLayer(routeLayer);
-                    }
-                }
-            });
-        }
-    }
+	@Override
+	public void layerRemoving(LayerRemoveEvent e) {
+		for (Layer layer : e.getSource().getLayers()) {
+			if (layer instanceof OsmDataLayer)  {
+				return; /* at least one OSM layer left, do nothing */
+			}
+		}
+		if(!e.isLastLayer()) {
+			SwingUtilities.invokeLater(() -> {
+				for (RouteLayer routeLayer : routeLayers) {
+					if (e.getSource().containsLayer(routeLayer)) {
+						e.getSource().removeLayer(routeLayer);
+					}
+				}
+			});
+		}
+	}
 
-    @Override
-    public void layerOrderChanged(LayerOrderChangeEvent e) {
-        // Do nothing
-    }
+	@Override
+	public void layerOrderChanged(LayerOrderChangeEvent e) {
+		// Do nothing
+	}
 }
