The following commit has been merged in the master branch:
commit d5a1efbeed674143119af2df604ecc2b88787ea8
Author: David Paleino <da...@debian.org>
Date:   Wed Oct 10 10:54:00 2012 +0200

    Patches refreshed to match new upstream code
    
    * Patches refreshed to match new upstream code
    * 07-handle_deleted_nodes_without_coordinates.patch dropped, was
      backported from upstream

diff --git a/debian/changelog b/debian/changelog
index 1b40d78..8017c54 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -9,8 +9,11 @@ josm (0.0.svn5531+dfsg1-1) UNRELEASED; urgency=low
     - fixed exception when merging multiple layers (Closes: #683186)
   * Don't prefer IPv4 stack anymore in josm wrapper script, since
     it seems to be functional now (Closes: #654515)
+  * Patches refreshed to match new upstream code
+  * 07-handle_deleted_nodes_without_coordinates.patch dropped, was
+    backported from upstream
 
- -- David Paleino <da...@debian.org>  Wed, 10 Oct 2012 10:42:11 +0200
+ -- David Paleino <da...@debian.org>  Wed, 10 Oct 2012 10:53:39 +0200
 
 josm (0.0.svn5267+dfsg1-2) unstable; urgency=low
 
diff --git a/debian/patches/00-build.patch b/debian/patches/00-build.patch
index 4a5fd5e..04fa38b 100644
--- a/debian/patches/00-build.patch
+++ b/debian/patches/00-build.patch
@@ -56,7 +56,7 @@ JARs and not depend on Internet connection.
          <tstamp>
              <format property="build.tstamp" pattern="yyyy-MM-dd HH:mm:ss"/>
          </tstamp>
-@@ -59,31 +59,29 @@
+@@ -60,31 +60,29 @@
  Revision: ${version.entry.commit.revision}
  Is-Local-Build: true
  Build-Date: ${build.tstamp}
@@ -94,9 +94,9 @@ JARs and not depend on Internet connection.
              </manifest>
              <zipfileset dir="images" prefix="images"/>
              <zipfileset dir="data" prefix="data"/>
-@@ -109,25 +107,23 @@ Build-Date: ${build.tstamp}
+@@ -110,21 +108,18 @@ Build-Date: ${build.tstamp}
      </target>
-     <target name="javacc">
+     <target name="javacc" depends="init" unless="javacc.notRequired">
          <mkdir dir="${mapcss.dir}/parsergen"/>
 -        <exec append="false" executable="java" failifexecutionfails="true">
 -            <arg value="-cp"/>
@@ -108,9 +108,9 @@ JARs and not depend on Internet connection.
          </exec>
  <!--        <javacc target="${mapcss.dir}/MapCSSParser.jj" 
javacchome="${javacc.home}" outputdirectory="${mapcss.dir}/parsergen"/>-->
      </target>
-     <target name="compile" depends="javacc,init">
--        <javac srcdir="src" 
includes="com/**,oauth/**,org/apache/commons/codec/**" destdir="build" 
target="1.5" source="1.5" debug="on" encoding="iso-8859-1"/>
--        <javac srcdir="src" 
excludes="com/**,oauth/**,org/apache/commons/codec/**" destdir="build" 
target="1.5" source="1.5" debug="on" encoding="UTF-8">
+     <target name="compile" depends="init,javacc">
+-        <javac srcdir="src" 
includes="com/**,oauth/**,org/apache/commons/codec/**" destdir="build" 
target="1.6" source="1.6" debug="on" includeantruntime="false" 
encoding="iso-8859-1"/>
+-        <javac srcdir="src" 
excludes="com/**,oauth/**,org/apache/commons/codec/**" destdir="build" 
target="1.6" source="1.6" debug="on" includeantruntime="false" encoding="UTF-8">
 +        <javac srcdir="src" classpathref="classpath" 
excludes="com/**,oauth/**,org/apache/**" destdir="build" target="1.5" 
source="1.5" debug="on" encoding="UTF-8">
              <compilerarg value="-Xlint:deprecation"/>
              <compilerarg value="-Xlint:unchecked"/>
@@ -118,13 +118,16 @@ JARs and not depend on Internet connection.
 +        <ant target="build" dir="i18n"/>
      </target>
      <target name="init">
+         <uptodate property="javacc.notRequired" 
targetfile="${mapcss.dir}/parsergen/MapCSSParser.java" >
+@@ -132,6 +127,7 @@ Build-Date: ${build.tstamp}
+         </uptodate>
          <mkdir dir="build"/>
          <mkdir dir="dist"/>
 +        <taskdef resource="net/sf/antcontrib/antcontrib.properties" 
classpath="${antcontrib.jar}"/>
      </target>
      <target name="javadoc">
          <javadoc destdir="javadoc" 
-@@ -146,6 +142,7 @@ Build-Date: ${build.tstamp}
+@@ -151,6 +147,7 @@ Build-Date: ${build.tstamp}
          <delete dir="build"/>
          <delete dir="dist"/>
          <delete dir="${mapcss.dir}/parsergen"/>
diff --git a/debian/patches/01-bts.patch b/debian/patches/01-bts.patch
index d64788a..b394609 100644
--- a/debian/patches/01-bts.patch
+++ b/debian/patches/01-bts.patch
@@ -24,7 +24,7 @@ bug triaging.
  import javax.swing.BorderFactory;
  import javax.swing.JLabel;
  import javax.swing.JOptionPane;
-@@ -73,6 +76,8 @@ public class AboutAction extends JosmAct
+@@ -74,6 +77,8 @@ public class AboutAction extends JosmAct
          info.add(GBC.glue(0,10), GBC.eol());
          info.add(new JLabel(tr("Version {0}", version.getVersionString())), 
GBC.eol().fill(GBC.HORIZONTAL).insets(10,0,0,0));
          info.add(GBC.glue(0,5), GBC.eol());
@@ -33,7 +33,7 @@ bug triaging.
          info.add(new JLabel(tr("Last change at {0}",version.getTime())), 
GBC.eol().fill(GBC.HORIZONTAL).insets(10,0,0,0));
          info.add(GBC.glue(0,5), GBC.eol());
          info.add(new JLabel(tr("Java Version 
{0}",System.getProperty("java.version"))), 
GBC.eol().fill(GBC.HORIZONTAL).insets(10,0,0,0));
-@@ -81,7 +86,7 @@ public class AboutAction extends JosmAct
+@@ -82,7 +87,7 @@ public class AboutAction extends JosmAct
          info.add(new UrlLabel("http://josm.openstreetmap.de",2), 
GBC.eol().fill(GBC.HORIZONTAL));
          info.add(GBC.glue(0,5), GBC.eol());
          info.add(new JLabel(tr("Bug Reports")), GBC.std().insets(10,0,10,0));
@@ -50,9 +50,9 @@ bug triaging.
      private String releaseDescription;
 +    private String debianVersion;
      private String time;
+     private String buildName;
      private boolean isLocalBuild;
- 
-@@ -115,6 +116,8 @@ public class Version {
+@@ -116,6 +117,8 @@ public class Version {
              version = JOSM_UNKNOWN_VERSION;
          }
  
@@ -61,7 +61,7 @@ bug triaging.
          // the last changed data
          //
          time = properties.get("Last Changed Date");
-@@ -160,6 +163,10 @@ public class Version {
+@@ -169,6 +172,10 @@ public class Version {
          return  version == 0 ? tr("UNKNOWN") : Integer.toString(version);
      }
  
diff --git a/debian/patches/02-elemstyles.patch 
b/debian/patches/02-elemstyles.patch
index e3a42e3..4e01d43 100644
--- a/debian/patches/02-elemstyles.patch
+++ b/debian/patches/02-elemstyles.patch
@@ -8,13 +8,13 @@ the openstreetmap-map-icons-* packages, so they can be used 
also by other
 applications. This patch points josm to the shared directories.
 
 ---
- src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java |   11 +++++++---
- src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java   |   13 
++++++++++--
- 2 files changed, 19 insertions(+), 5 deletions(-)
+ src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java |   11 ++++++--
+ src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java   |   15 
+++++++++++-
+ 2 files changed, 22 insertions(+), 4 deletions(-)
 
 --- josm.orig/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
 +++ josm/src/org/openstreetmap/josm/gui/mappaint/MapPaintStyles.java
-@@ -144,14 +144,19 @@ public class MapPaintStyles {
+@@ -176,14 +176,19 @@ public class MapPaintStyles {
          }
  
          if (Main.pref.getBoolean("mappaint.icon.enable-defaults", true)) {
@@ -39,7 +39,7 @@ applications. This patch points josm to the shared 
directories.
  
 --- josm.orig/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java
 +++ josm/src/org/openstreetmap/josm/gui/tagging/TaggingPreset.java
-@@ -67,6 +67,7 @@ import org.openstreetmap.josm.gui.QuadSt
+@@ -65,6 +65,7 @@ import org.openstreetmap.josm.gui.QuadSt
  import org.openstreetmap.josm.gui.dialogs.relation.RelationEditor;
  import org.openstreetmap.josm.gui.layer.Layer;
  import org.openstreetmap.josm.gui.layer.OsmDataLayer;
@@ -47,22 +47,24 @@ applications. This patch points josm to the shared 
directories.
  import org.openstreetmap.josm.gui.preferences.SourceEntry;
  import 
org.openstreetmap.josm.gui.preferences.map.TaggingPresetPreference.PresetPrefHelper;
  import org.openstreetmap.josm.gui.tagging.ac.AutoCompletingTextField;
-@@ -1243,8 +1244,16 @@ public class TaggingPreset extends Abstr
-                 final Collection<String> s = 
Main.pref.getCollection("taggingpreset.icon.sources", null);
-                 ImageIcon icon = new 
ImageProvider(iconName).setDirs(s).setId("presets").setArchive(zipIcons).setOptional(true).get();
-                 if (icon == null) {
--                    System.out.println("Could not get presets icon " + 
iconName);
--                    icon = new ImageIcon(iconName);
-+                    if (iconName.startsWith("styles/standard/")) {
-+                        String realIconName = 
iconName.replaceAll("styles/standard/", "");
-+                        LinkedList<String> dirs = new LinkedList<String>();
-+                        MapPaintStyles.addDebianDirs(dirs);
-+                        icon = new 
ImageProvider(realIconName).setDirs(dirs).setId("presets").setArchive(zipIcons).setOptional(true).get();
-+                    }
-+                    if (icon == null) {
-+                        System.out.println("Could not get presets icon " + 
iconName);
-+                        icon = new ImageIcon(iconName);
-+                    }
-                 }
-                 if (Math.max(icon.getIconHeight(), icon.getIconWidth()) != 
16) {
-                     icon = new 
ImageIcon(icon.getImage().getScaledInstance(16, 16, Image.SCALE_SMOOTH));
+@@ -1265,7 +1266,19 @@ public class TaggingPreset extends Abstr
+ 
+     protected static ImageIcon loadImageIcon(String iconName, File zipIcons) {
+         final Collection<String> s = 
Main.pref.getCollection("taggingpreset.icon.sources", null);
+-        return new 
ImageProvider(iconName).setDirs(s).setId("presets").setArchive(zipIcons).setOptional(true).get();
++        ImageIcon icon = 
ImageProvider(iconName).setDirs(s).setId("presets").setArchive(zipIcons).setOptional(true).get();
++        if (icon == null) {
++            if (iconName.startsWith("styles/standard/")) {
++                String realIconName = iconName.replaceAll("styles/standard/", 
"");
++                LinkedList<String> dirs = new LinkedList<String>();
++                MapPaintStyles.addDebianDirs(dirs);
++                icon = new 
ImageProvider(realIconName).setDirs(dirs).setId("presets").setArchive(zipIcons).setOptional(true).get();
++            }
++            if (icon == null) {
++                System.out.println("Could not get presets icon " + iconName);
++                icon = new ImageIcon(iconName);
++            }
++        }
+     }
+ 
+     /*
diff --git a/debian/patches/04-fix_images.patch 
b/debian/patches/04-fix_images.patch
index 51edc10..ed5f2db 100644
--- a/debian/patches/04-fix_images.patch
+++ b/debian/patches/04-fix_images.patch
@@ -9,7 +9,7 @@ Forwarded: not-needed
 
 --- josm.orig/data/defaultpresets.xml
 +++ josm/data/defaultpresets.xml
-@@ -2974,7 +2974,7 @@ Note that for a match, at least one posi
+@@ -3033,7 +3033,7 @@ Note that for a match, at least one posi
              <key key="amenity" value="theatre" />
              <text key="name" text="Name" />
          </item>
@@ -18,7 +18,7 @@ Forwarded: not-needed
              <link 
href="http://wiki.openstreetmap.org/wiki/Tag:amenity=library";
                    
de.href="http://wiki.openstreetmap.org/wiki/DE:Tag:amenity=library";
                    
fi.href="http://wiki.openstreetmap.org/wiki/Fi:Tag:amenity=library";
-@@ -3278,7 +3278,7 @@ Note that for a match, at least one posi
+@@ -3337,7 +3337,7 @@ Note that for a match, at least one posi
              <space />
          </item>
          <separator/>
diff --git a/debian/patches/05-fix_version.patch 
b/debian/patches/05-fix_version.patch
index 31457d8..2e2d88d 100644
--- a/debian/patches/05-fix_version.patch
+++ b/debian/patches/05-fix_version.patch
@@ -10,7 +10,7 @@ Forwarded: not-needed
 
 --- josm.orig/build.xml
 +++ josm/build.xml
-@@ -78,7 +78,7 @@ Debian-Release: ${debian.version}
+@@ -79,7 +79,7 @@ Debian-Release: ${debian.version}
              <!-- add attribute excludes="**/*BZip2*,**/*Bzip2*" to create a 
non-bzip2 supporting jar -->
              <manifest>
                  <attribute name="Main-class" value="JOSM"/>
@@ -21,10 +21,10 @@ Forwarded: not-needed
                                <attribute name="Class-Path" 
value="${classpathprop}"/>
 --- josm.orig/src/org/openstreetmap/josm/data/Version.java
 +++ josm/src/org/openstreetmap/josm/data/Version.java
-@@ -205,9 +205,6 @@ public class Version {
-     public String getAgentString() {
-         int v = getVersion();
-         String s = (v == JOSM_UNKNOWN_VERSION) ? "UNKNOWN" : 
Integer.toString(v);
+@@ -217,9 +217,6 @@ public class Version {
+         if (buildName != null) {
+             s += " " + buildName;
+         }
 -        if (isLocalBuild() && v != JOSM_UNKNOWN_VERSION) {
 -            s += " SVN";
 -        }
diff --git a/debian/patches/06-handle_redacted_objects.patch 
b/debian/patches/06-handle_redacted_objects.patch
index 3ce0066..7cfc669 100644
--- a/debian/patches/06-handle_redacted_objects.patch
+++ b/debian/patches/06-handle_redacted_objects.patch
@@ -11,9 +11,9 @@ Bug-Debian: http://bugs.debian.org/682315
 
 --- josm.orig/src/org/openstreetmap/josm/data/osm/history/History.java
 +++ josm/src/org/openstreetmap/josm/data/osm/history/History.java
-@@ -230,4 +230,18 @@ public class History{
-     public OsmPrimitiveType getType() {
-         return type;
+@@ -244,4 +244,18 @@ public class History{
+         result += "]";
+         return result;
      }
 +
 +    @Override
@@ -32,9 +32,9 @@ Bug-Debian: http://bugs.debian.org/682315
  }
 --- josm.orig/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java
 +++ josm/src/org/openstreetmap/josm/gui/history/HistoryBrowserModel.java
-@@ -161,6 +161,11 @@ public class HistoryBrowserModel extends
-         if (history.getByVersion(primitive.getVersion()) != null)
-             return primitive.isModified();
+@@ -169,6 +169,11 @@ public class HistoryBrowserModel extends
+         if (history.getLatest().getVersion() > primitive.getVersion())
+             return false;
  
 +        // if latest version from history is higher than a non existing 
primitive version,
 +        // that means this version has been redacted and the primitive cannot 
be used.
diff --git a/debian/patches/07-handle_deleted_nodes_without_coordinates.patch 
b/debian/patches/07-handle_deleted_nodes_without_coordinates.patch
deleted file mode 100644
index 0c68898..0000000
--- a/debian/patches/07-handle_deleted_nodes_without_coordinates.patch
+++ /dev/null
@@ -1,503 +0,0 @@
-From: Frederik Ramm <frede...@remote.org>
- Don-vip
-Subject: Handle deleted nodes without coordinates after recent OSM API change
-Origin: upstream, http://josm.openstreetmap.de/changeset/5326/josm
- upstream, http://josm.openstreetmap.de/changeset/5328/josm
- upstream, http://josm.openstreetmap.de/changeset/5332/josm
- upstream, http://josm.openstreetmap.de/changeset/5333/josm
- upstream, http://josm.openstreetmap.de/changeset/5334/josm
- upstream, http://josm.openstreetmap.de/changeset/5346/josm
- upstream, http://josm.openstreetmap.de/changeset/5349/josm
- upstream, http://josm.openstreetmap.de/changeset/5350/josm
- upstream, http://josm.openstreetmap.de/changeset/5351/josm
- upstream, http://josm.openstreetmap.de/changeset/5356/josm
-Bug-Debian: http://bugs.debian.org/682315
-
----
- src/org/openstreetmap/josm/data/osm/DataSetMerger.java                      | 
  17 +++--
- src/org/openstreetmap/josm/data/osm/DatasetConsistencyTest.java             | 
  10 +--
- src/org/openstreetmap/josm/data/osm/Node.java                               | 
  17 ++---
- src/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRenderer.java | 
  14 ++--
- src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java         | 
  27 +++++---
- src/org/openstreetmap/josm/gui/DefaultNameFormatter.java                    | 
  18 +++--
- src/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialog.java          | 
  14 ++--
- src/org/openstreetmap/josm/gui/history/CoordinateInfoViewer.java            | 
  32 +++++++---
- src/org/openstreetmap/josm/io/GeoJSONWriter.java                            | 
   4 -
- src/org/openstreetmap/josm/io/OsmChangesetContentParser.java                | 
  13 ++--
- src/org/openstreetmap/josm/io/OsmHistoryReader.java                         | 
  13 ++--
- src/org/openstreetmap/josm/io/OsmReader.java                                | 
   6 +
- src/org/openstreetmap/josm/io/OsmWriter.java                                | 
   4 -
- 13 files changed, 118 insertions(+), 71 deletions(-)
-
---- josm.orig/src/org/openstreetmap/josm/data/osm/Node.java
-+++ josm/src/org/openstreetmap/josm/data/osm/Node.java
-@@ -33,16 +33,12 @@ public final class Node extends OsmPrimi
- 
-     @Override
-     public final void setCoor(LatLon coor) {
--        if(coor != null){
--            updateCoor(coor, null);
--        }
-+        updateCoor(coor, null);
-     }
- 
-     @Override
-     public final void setEastNorth(EastNorth eastNorth) {
--        if(eastNorth != null) {
--            updateCoor(null, eastNorth);
--        }
-+        updateCoor(null, eastNorth);
-     }
- 
-     private void updateCoor(LatLon coor, EastNorth eastNorth) {
-@@ -112,8 +108,11 @@ public final class Node extends OsmPrimi
-             this.lon = ll.lon();
-             this.east = eastNorth.east();
-             this.north = eastNorth.north();
--        } else
--            throw new IllegalArgumentException();
-+        } else {
-+            this.lat = Double.NaN;
-+            this.lon = Double.NaN;
-+            invalidateEastNorthCache();
-+        }
-     }
- 
-     protected Node(long id, boolean allowNegative) {
-@@ -177,7 +176,7 @@ public final class Node extends OsmPrimi
-     @Override
-     void setDataset(DataSet dataSet) {
-         super.setDataset(dataSet);
--        if (!isIncomplete() && (getCoor() == null || getEastNorth() == null))
-+        if (!isIncomplete() && isVisible() && (getCoor() == null || 
getEastNorth() == null))
-             throw new DataIntegrityProblemException("Complete node with null 
coordinates: " + toString() + get3892DebugInfo());
-     }
- 
---- josm.orig/src/org/openstreetmap/josm/io/OsmReader.java
-+++ josm/src/org/openstreetmap/josm/io/OsmReader.java
-@@ -177,7 +177,11 @@ public class OsmReader extends AbstractR
- 
-     protected Node parseNode() throws XMLStreamException {
-         NodeData nd = new NodeData();
--        nd.setCoor(new 
LatLon(Double.parseDouble(parser.getAttributeValue(null, "lat")), 
Double.parseDouble(parser.getAttributeValue(null, "lon"))));
-+        String lat = parser.getAttributeValue(null, "lat");
-+        String lon = parser.getAttributeValue(null, "lon");
-+        if (lat != null && lon != null) {
-+            nd.setCoor(new LatLon(Double.parseDouble(lat), 
Double.parseDouble(lon)));
-+        }
-         readCommon(nd);
-         Node n = new Node(nd.getId(), nd.getVersion());
-         n.setVisible(nd.isVisible());
---- josm.orig/src/org/openstreetmap/josm/io/OsmWriter.java
-+++ josm/src/org/openstreetmap/josm/io/OsmWriter.java
-@@ -135,7 +135,9 @@ public class OsmWriter extends XmlWriter
-     public void visit(INode n) {
-         if (n.isIncomplete()) return;
-         addCommon(n, "node");
--        out.print(" lat='"+n.getCoor().lat()+"' lon='"+n.getCoor().lon()+"'");
-+        if (n.getCoor() != null) {
-+            out.print(" lat='"+n.getCoor().lat()+"' 
lon='"+n.getCoor().lon()+"'");
-+        }
-         if (!withBody) {
-             out.println("/>");
-         } else {
---- josm.orig/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java
-+++ josm/src/org/openstreetmap/josm/gui/DefaultNameFormatter.java
-@@ -18,6 +18,7 @@ import java.util.Set;
- 
- import org.openstreetmap.josm.Main;
- import org.openstreetmap.josm.data.coor.CoordinateFormat;
-+import org.openstreetmap.josm.data.coor.LatLon;
- import org.openstreetmap.josm.data.osm.Changeset;
- import org.openstreetmap.josm.data.osm.IPrimitive;
- import org.openstreetmap.josm.data.osm.IRelation;
-@@ -178,7 +179,9 @@ public class DefaultNameFormatter implem
-             } else {
-                 preset.nameTemplate.appendText(name, node);
-             }
--            name.append(" 
\u200E(").append(node.getCoor().latToString(CoordinateFormat.getDefaultFormat())).append(",
 
").append(node.getCoor().lonToString(CoordinateFormat.getDefaultFormat())).append(")");
-+            if (node.getCoor() != null) {
-+                name.append(" 
\u200E(").append(node.getCoor().latToString(CoordinateFormat.getDefaultFormat())).append(",
 
").append(node.getCoor().lonToString(CoordinateFormat.getDefaultFormat())).append(")");
-+            }
-         }
-         decorateNameWithId(name, node);
- 
-@@ -553,11 +556,14 @@ public class DefaultNameFormatter implem
-         } else {
-             sb.append(name);
-         }
--        sb.append(" (")
--        
.append(node.getCoords().latToString(CoordinateFormat.getDefaultFormat()))
--        .append(", ")
--        
.append(node.getCoords().lonToString(CoordinateFormat.getDefaultFormat()))
--        .append(")");
-+        LatLon coord = node.getCoords();
-+        if (coord != null) {
-+            sb.append(" (")
-+            .append(coord.latToString(CoordinateFormat.getDefaultFormat()))
-+            .append(", ")
-+            .append(coord.lonToString(CoordinateFormat.getDefaultFormat()))
-+            .append(")");
-+        }
-         decorateNameWithId(sb, node);
-         return sb.toString();
-     }
---- 
josm.orig/src/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialog.java
-+++ josm/src/org/openstreetmap/josm/gui/dialogs/InspectPrimitiveDialog.java
-@@ -272,12 +272,14 @@ public class InspectPrimitiveDialog exte
-         }
- 
-         void addCoordinates(Node n) {
--            add(tr("Coordinates: "),
--                    Double.toString(n.getCoor().lat()), ", ",
--                    Double.toString(n.getCoor().lon()));
--            add(tr("Coordinates (projected): "),
--                    Double.toString(n.getEastNorth().east()), ", ",
--                    Double.toString(n.getEastNorth().north()));
-+            if (n.getCoor() != null) {
-+                add(tr("Coordinates: "),
-+                        Double.toString(n.getCoor().lat()), ", ",
-+                        Double.toString(n.getCoor().lon()));
-+                add(tr("Coordinates (projected): "),
-+                        Double.toString(n.getEastNorth().east()), ", ",
-+                        Double.toString(n.getEastNorth().north()));
-+            }
-         }
- 
-         void addReferrers(StringBuilder s, OsmPrimitive o) {
---- josm.orig/src/org/openstreetmap/josm/data/osm/DatasetConsistencyTest.java
-+++ josm/src/org/openstreetmap/josm/data/osm/DatasetConsistencyTest.java
-@@ -69,7 +69,7 @@ public class DatasetConsistencyTest {
- 
-     public void checkCompleteNodesWithoutCoordinates() {
-         for (Node node:dataSet.getNodes()) {
--            if (!node.isIncomplete() && (node.getCoor() == null || 
node.getEastNorth() == null)) {
-+            if (!node.isIncomplete() && node.isVisible() && (node.getCoor() 
== null || node.getEastNorth() == null)) {
-                 printError("COMPLETE WITHOUT COORDINATES", "%s is not 
incomplete but has null coordinates", node);
-             }
-         }
-@@ -79,9 +79,11 @@ public class DatasetConsistencyTest {
-         for (Node n:dataSet.getNodes()) {
-             if (!n.isIncomplete() && !n.isDeleted()) {
-                 LatLon c = n.getCoor();
--                BBox box = new BBox(new LatLon(c.lat() - 0.0001, c.lon() - 
0.0001), new LatLon(c.lat() + 0.0001, c.lon() + 0.0001));
--                if (!dataSet.searchNodes(box).contains(n)) {
--                    printError("SEARCH NODES", "%s not found using 
Dataset.searchNodes()", n);
-+                if (c != null) {
-+                    BBox box = new BBox(new LatLon(c.lat() - 0.0001, c.lon() 
- 0.0001), new LatLon(c.lat() + 0.0001, c.lon() + 0.0001));
-+                    if (!dataSet.searchNodes(box).contains(n)) {
-+                        printError("SEARCH NODES", "%s not found using 
Dataset.searchNodes()", n);
-+                    }
-                 }
-             }
-         }
---- josm.orig/src/org/openstreetmap/josm/gui/history/CoordinateInfoViewer.java
-+++ josm/src/org/openstreetmap/josm/gui/history/CoordinateInfoViewer.java
-@@ -14,6 +14,7 @@ import javax.swing.JLabel;
- import javax.swing.JPanel;
- 
- import org.openstreetmap.josm.data.coor.CoordinateFormat;
-+import org.openstreetmap.josm.data.coor.LatLon;
- import org.openstreetmap.josm.data.osm.history.HistoryNode;
- import org.openstreetmap.josm.data.osm.history.HistoryOsmPrimitive;
- import org.openstreetmap.josm.gui.NavigatableComponent;
-@@ -255,19 +256,24 @@ public class CoordinateInfoViewer extend
-             HistoryNode node = (HistoryNode)p;
-             HistoryNode oppositeNode = (HistoryNode) opposite;
- 
-+            LatLon coord = node.getCoords();
-+            LatLon oppositeCoord = oppositeNode.getCoords();
-+
-             // display the coordinates
-             //
--            
lblLat.setText(node.getCoords().latToString(CoordinateFormat.DECIMAL_DEGREES));
--            
lblLon.setText(node.getCoords().lonToString(CoordinateFormat.DECIMAL_DEGREES));
-+            lblLat.setText(coord != null ? 
coord.latToString(CoordinateFormat.DECIMAL_DEGREES) : tr("(none)"));
-+            lblLon.setText(coord != null ? 
coord.lonToString(CoordinateFormat.DECIMAL_DEGREES) : tr("(none)"));
- 
-             // update background color to reflect differences in the 
coordinates
-             //
--            if (node.getCoords().lat() == oppositeNode.getCoords().lat()) {
-+            if (coord == oppositeCoord ||
-+                    (coord != null && oppositeCoord != null && coord.lat() == 
oppositeCoord.lat())) {
-                 lblLat.setBackground(Color.WHITE);
-             } else {
-                 lblLat.setBackground(BGCOLOR_DIFFERENCE);
-             }
--            if (node.getCoords().lon() == oppositeNode.getCoords().lon()) {
-+            if (coord == oppositeCoord ||
-+                    (coord != null && oppositeCoord != null && coord.lon() == 
oppositeCoord.lon())) {
-                 lblLon.setBackground(Color.WHITE);
-             } else {
-                 lblLon.setBackground(BGCOLOR_DIFFERENCE);
-@@ -321,15 +327,23 @@ public class CoordinateInfoViewer extend
-             HistoryNode node = (HistoryNode) p;
-             HistoryNode oppositeNode = (HistoryNode) opposite;
- 
-+            LatLon coord = node.getCoords();
-+            LatLon oppositeCoord = oppositeNode.getCoords();
-+
-             // update distance
-             //
--            double distance = 
node.getCoords().greatCircleDistance(oppositeNode.getCoords());
--            if (distance > 0) {
--                lblDistance.setBackground(BGCOLOR_DIFFERENCE);
-+            if (coord != null && oppositeCoord != null) {
-+                double distance = 
coord.greatCircleDistance(oppositeNode.getCoords());
-+                if (distance > 0) {
-+                    lblDistance.setBackground(BGCOLOR_DIFFERENCE);
-+                } else {
-+                    lblDistance.setBackground(Color.WHITE);
-+                }
-+                
lblDistance.setText(NavigatableComponent.getDistText(distance));
-             } else {
--                lblDistance.setBackground(Color.WHITE);
-+                lblDistance.setBackground(coord != oppositeCoord ? 
BGCOLOR_DIFFERENCE : Color.WHITE);
-+                lblDistance.setText(tr("(none)"));
-             }
--            lblDistance.setText(NavigatableComponent.getDistText(distance));
-         }
-     }
- }
---- josm.orig/src/org/openstreetmap/josm/io/GeoJSONWriter.java
-+++ josm/src/org/openstreetmap/josm/io/GeoJSONWriter.java
-@@ -103,6 +103,8 @@ public class GeoJSONWriter implements Vi
-     }
- 
-     protected void appendCoord(LatLon c) {
--        out.append("[").append(c.lon()).append(", 
").append(c.lat()).append("]");
-+        if (c != null) {
-+            out.append("[").append(c.lon()).append(", 
").append(c.lat()).append("]");
-+        }
-     }
- }
---- josm.orig/src/org/openstreetmap/josm/io/OsmChangesetContentParser.java
-+++ josm/src/org/openstreetmap/josm/io/OsmChangesetContentParser.java
-@@ -102,16 +102,16 @@ public class OsmChangesetContentParser {
-             return l;
-         }
- 
--        protected Double getMandatoryAttributeDouble(Attributes attr, String 
name) throws SAXException{
-+        protected Double getAttributeDouble(Attributes attr, String name) 
throws SAXException{
-             String v = attr.getValue(name);
-             if (v == null) {
--                throwException(tr("Missing mandatory attribute ''{0}''.", 
name));
-+                return null;
-             }
-             double d = 0.0;
-             try {
-                 d = Double.parseDouble(v);
-             } catch(NumberFormatException e) {
--                throwException(tr("Illegal value for mandatory attribute 
''{0}'' of type double. Got ''{1}''.", name, v));
-+                throwException(tr("Illegal value for attribute ''{0}'' of 
type double. Got ''{1}''.", name, v));
-             }
-             return d;
-         }
-@@ -159,10 +159,11 @@ public class OsmChangesetContentParser {
-             Date timestamp = DateUtils.fromString(v);
-             HistoryOsmPrimitive primitive = null;
-             if (type.equals(OsmPrimitiveType.NODE)) {
--                double lat = getMandatoryAttributeDouble(atts, "lat");
--                double lon = getMandatoryAttributeDouble(atts, "lon");
-+                Double lat = getAttributeDouble(atts, "lat");
-+                Double lon = getAttributeDouble(atts, "lon");
-+                LatLon coor = (lat != null && lon != null) ? new 
LatLon(lat,lon) : null;
-                 primitive = new HistoryNode(
--                        id,version,visible,user,changesetId,timestamp, new 
LatLon(lat,lon)
-+                        id,version,visible,user,changesetId,timestamp,coor
-                 );
- 
-             } else if (type.equals(OsmPrimitiveType.WAY)) {
---- josm.orig/src/org/openstreetmap/josm/io/OsmHistoryReader.java
-+++ josm/src/org/openstreetmap/josm/io/OsmHistoryReader.java
-@@ -98,16 +98,16 @@ public class OsmHistoryReader {
-             return l;
-         }
- 
--        protected Double getMandatoryAttributeDouble(Attributes attr, String 
name) throws SAXException{
-+        protected Double getAttributeDouble(Attributes attr, String name) 
throws SAXException{
-             String v = attr.getValue(name);
-             if (v == null) {
--                throwException(tr("Missing mandatory attribute ''{0}''.", 
name));
-+                return null;
-             }
-             double d = 0.0;
-             try {
-                 d = Double.parseDouble(v);
-             } catch(NumberFormatException e) {
--                throwException(tr("Illegal value for mandatory attribute 
''{0}'' of type double. Got ''{1}''.", name, v));
-+                throwException(tr("Illegal value for attribute ''{0}'' of 
type double. Got ''{1}''.", name, v));
-             }
-             return d;
-         }
-@@ -153,10 +153,11 @@ public class OsmHistoryReader {
-             Date timestamp = DateUtils.fromString(v);
-             HistoryOsmPrimitive primitive = null;
-             if (type.equals(OsmPrimitiveType.NODE)) {
--                double lat = getMandatoryAttributeDouble(atts, "lat");
--                double lon = getMandatoryAttributeDouble(atts, "lon");
-+                Double lat = getAttributeDouble(atts, "lat");
-+                Double lon = getAttributeDouble(atts, "lon");
-+                LatLon coord = (lat != null && lon != null) ? new 
LatLon(lat,lon) : null;
-                 primitive = new HistoryNode(
--                        id,version,visible,user,changesetId,timestamp, new 
LatLon(lat,lon)
-+                        id,version,visible,user,changesetId,timestamp,coord
-                 );
- 
-             } else if (type.equals(OsmPrimitiveType.WAY)) {
---- josm.orig/src/org/openstreetmap/josm/data/osm/DataSetMerger.java
-+++ josm/src/org/openstreetmap/josm/data/osm/DataSetMerger.java
-@@ -178,8 +178,9 @@ public class DataSetMerger {
- 
-                 List<OsmPrimitive> referrers = target.getReferrers();
-                 if (referrers.isEmpty()) {
--                    target.setDeleted(true);
-+                    resetPrimitive(target);
-                     target.mergeFrom(source);
-+                    target.setDeleted(true);
-                     it.remove();
-                     flag = true;
-                 } else {
-@@ -202,11 +203,7 @@ public class DataSetMerger {
-             // There are some more objects rest in the objectsToDelete set
-             // This can be because of cross-referenced relations.
-             for (OsmPrimitive osm: objectsToDelete) {
--                if (osm instanceof Way) {
--                    ((Way) osm).setNodes(null);
--                } else if (osm instanceof Relation) {
--                    ((Relation) osm).setMembers(null);
--                }
-+                resetPrimitive(osm);
-             }
-             for (OsmPrimitive osm: objectsToDelete) {
-                 osm.setDeleted(true);
-@@ -215,6 +212,14 @@ public class DataSetMerger {
-         }
-     }
- 
-+    private final void resetPrimitive(OsmPrimitive osm) {
-+        if (osm instanceof Way) {
-+            ((Way) osm).setNodes(null);
-+        } else if (osm instanceof Relation) {
-+            ((Relation) osm).setMembers(null);
-+        }
-+    }
-+
-     /**
-      * Merges the node list of a source way onto its target way.
-      *
---- 
josm.orig/src/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRenderer.java
-+++ 
josm/src/org/openstreetmap/josm/data/osm/visitor/paint/WireframeMapRenderer.java
-@@ -137,33 +137,33 @@ public class WireframeMapRenderer extend
-            time to iterate through list twice, OTOH does not
-            require changing the colour while painting... */
-         for (final OsmPrimitive osm: data.searchRelations(bbox)) {
--            if (!osm.isDeleted() && !ds.isSelected(osm) && 
!osm.isDisabledAndHidden()) {
-+            if (osm.isDrawable() && !ds.isSelected(osm) && 
!osm.isDisabledAndHidden()) {
-                 osm.visit(this);
-             }
-         }
- 
-         for (final OsmPrimitive osm:data.searchWays(bbox)){
--            if (!osm.isDeleted() && !ds.isSelected(osm) && 
!osm.isDisabledAndHidden() && osm.isTagged()) {
-+            if (osm.isDrawable() && !ds.isSelected(osm) && 
!osm.isDisabledAndHidden() && osm.isTagged()) {
-                 osm.visit(this);
-             }
-         }
-         displaySegments();
- 
-         for (final OsmPrimitive osm:data.searchWays(bbox)){
--            if (!osm.isDeleted() && !ds.isSelected(osm) && 
!osm.isDisabledAndHidden() && !osm.isTagged()) {
-+            if (osm.isDrawable() && !ds.isSelected(osm) && 
!osm.isDisabledAndHidden() && !osm.isTagged()) {
-                 osm.visit(this);
-             }
-         }
-         displaySegments();
-         for (final OsmPrimitive osm : data.getSelected()) {
--            if (!osm.isDeleted()) {
-+            if (osm.isDrawable()) {
-                 osm.visit(this);
-             }
-         }
-         displaySegments();
- 
-         for (final OsmPrimitive osm: data.searchNodes(bbox)) {
--            if (!osm.isDeleted() && !ds.isSelected(osm) && 
!osm.isDisabledAndHidden())
-+            if (osm.isDrawable() && !ds.isSelected(osm) && 
!osm.isDisabledAndHidden())
-             {
-                 osm.visit(this);
-             }
-@@ -343,7 +343,7 @@ public class WireframeMapRenderer extend
-         g.setColor(col);
- 
-         for (RelationMember m : r.getMembers()) {
--            if (m.getMember().isIncomplete() || m.getMember().isDeleted()) {
-+            if (m.getMember().isIncomplete() || !m.getMember().isDrawable()) {
-                 continue;
-             }
- 
-@@ -360,7 +360,7 @@ public class WireframeMapRenderer extend
- 
-                 boolean first = true;
-                 for (Node n : m.getWay().getNodes()) {
--                    if (n.isIncomplete() || n.isDeleted()) {
-+                    if (!n.isDrawable()) {
-                         continue;
-                     }
-                     Point p = nc.getPoint(n);
---- 
josm.orig/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java
-+++ josm/src/org/openstreetmap/josm/data/validation/tests/DuplicateNode.java
-@@ -43,35 +43,44 @@ public class DuplicateNode extends Test
- 
-         double precision = 
Main.pref.getDouble("validator.duplicatenodes.precision", 0.);
- 
--        private LatLon RoundCoord(Node o) {
-+        private LatLon roundCoord(LatLon coor) {
-             return new LatLon(
--                    Math.round(o.getCoor().lat() / precision) * precision,
--                    Math.round(o.getCoor().lon() / precision) * precision
-+                    Math.round(coor.lat() / precision) * precision,
-+                    Math.round(coor.lon() / precision) * precision
-                     );
-         }
- 
-         @SuppressWarnings("unchecked")
-         private LatLon getLatLon(Object o) {
-             if (o instanceof Node) {
-+                LatLon coor = ((Node) o).getCoor();
-+                if (coor == null)
-+                    return null;
-                 if (precision==0)
--                    return ((Node) o).getCoor().getRoundedToOsmPrecision();
--                return RoundCoord((Node) o);
-+                    return coor.getRoundedToOsmPrecision();
-+                return roundCoord(coor);
-             } else if (o instanceof List<?>) {
-+                LatLon coor = ((List<Node>) o).get(0).getCoor();
-+                if (coor == null)
-+                    return null;
-                 if (precision==0)
--                    return ((List<Node>) 
o).get(0).getCoor().getRoundedToOsmPrecision();
--                return RoundCoord(((List<Node>) o).get(0));
-+                    return coor.getRoundedToOsmPrecision();
-+                return roundCoord(coor);
-             } else
-                 throw new AssertionError();
-         }
- 
-         @Override
-         public boolean equals(Object k, Object t) {
--            return getLatLon(k).equals(getLatLon(t));
-+            LatLon coorK = getLatLon(k);
-+            LatLon coorT = getLatLon(t);
-+            return coorK == coorT || (coorK != null && coorT != null && 
coorK.equals(coorT));
-         }
- 
-         @Override
-         public int getHashCode(Object k) {
--            return getLatLon(k).hashCode();
-+            LatLon coorK = getLatLon(k);
-+            return coorK == null ? 0 : coorK.hashCode();
-         }
-     }
- 
diff --git a/debian/patches/series b/debian/patches/series
index 8bdaa91..b002fc0 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -6,4 +6,3 @@
 05-fix_version.patch
 #100-fix_SlippyMapBBoxChooser.patch
 06-handle_redacted_objects.patch
-07-handle_deleted_nodes_without_coordinates.patch

-- 
Editor for OpenStreetMap

_______________________________________________
Pkg-osm-commits mailing list
Pkg-osm-commits@lists.alioth.debian.org
http://lists.alioth.debian.org/cgi-bin/mailman/listinfo/pkg-osm-commits

Reply via email to