Hi all,

With the latest Git revision (43089ed), I get an OsmosisRuntimeException when I use --log-progress followed by --buffer. For example:

osmosis -v \
    --rb massachusetts.osm.pbf --sort \
    --rb connecticut.osm.pbf --sort \
    --merge --log-progress --buffer --wb _combined.osm.pbf
...
org.openstreetmap.osmosis.core.OsmosisRuntimeException: initialize has not been called at org.openstreetmap.osmosis.core.store.DataPostbox.put(DataPostbox.java:288) at org.openstreetmap.osmosis.core.buffer.v0_6.EntityBuffer.process(EntityBuffer.java:48) at org.openstreetmap.osmosis.core.progress.v0_6.EntityProgressLogger.process(EntityProgressLogger.java:70) at org.openstreetmap.osmosis.core.sort.v0_6.EntitySorter.complete(EntitySorter.java:71) at crosby.binary.osmosis.OsmosisBinaryParser.complete(OsmosisBinaryParser.java:35) at crosby.binary.file.BlockInputStream.process(BlockInputStream.java:37)
       at crosby.binary.osmosis.OsmosisReader.run(OsmosisReader.java:45)
       at java.lang.Thread.run(Thread.java:679)

If I remove the --log-progress argument, it works as expected.

I chased this down to a missing call to sink.initialize() in EntityProgressLogger.initialize(). Attached is a patch that I believe fixes this bug.

-Richard
>From 33cabe82f3a55dba2f3f5942cbe021177a8db493 Mon Sep 17 00:00:00 2001
From: Richard Hansen <[email protected]>
Date: Sat, 14 Jan 2012 15:51:33 -0500
Subject: [PATCH] Add missing call to sink.initialize() in
 EntityProgressLogger

Without this change, when --log-progress is followed by --buffer, an
OsmosisRuntimeException is thrown by DataPostbox.put() complaining
that DataPostbox.initialize() has not been called:

osmosis -v \
    --rb massachusetts.osm.pbf --sort \
    --rb connecticut.osm.pbf --sort \
    --merge --log-progress --buffer --wb _combined.osm.pbf
...
org.openstreetmap.osmosis.core.OsmosisRuntimeException: initialize has not been called
       at org.openstreetmap.osmosis.core.store.DataPostbox.put(DataPostbox.java:288)
       at org.openstreetmap.osmosis.core.buffer.v0_6.EntityBuffer.process(EntityBuffer.java:48)
       at org.openstreetmap.osmosis.core.progress.v0_6.EntityProgressLogger.process(EntityProgressLogger.java:70)
       at org.openstreetmap.osmosis.core.sort.v0_6.EntitySorter.complete(EntitySorter.java:71)
       at crosby.binary.osmosis.OsmosisBinaryParser.complete(OsmosisBinaryParser.java:35)
       at crosby.binary.file.BlockInputStream.process(BlockInputStream.java:37)
       at crosby.binary.osmosis.OsmosisReader.run(OsmosisReader.java:45)
       at java.lang.Thread.run(Thread.java:679)
---
 .../core/progress/v0_6/EntityProgressLogger.java   |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/core/src/main/java/org/openstreetmap/osmosis/core/progress/v0_6/EntityProgressLogger.java b/core/src/main/java/org/openstreetmap/osmosis/core/progress/v0_6/EntityProgressLogger.java
index a6c4de1..b531e14 100644
--- a/core/src/main/java/org/openstreetmap/osmosis/core/progress/v0_6/EntityProgressLogger.java
+++ b/core/src/main/java/org/openstreetmap/osmosis/core/progress/v0_6/EntityProgressLogger.java
@@ -49,6 +49,7 @@ public class EntityProgressLogger implements SinkSource {
 	 */
 	public void initialize(Map<String, Object> metaData) {
 		progressTracker.initialize();
+		sink.initialize(metaData);
 	}
 	
 	
-- 
1.7.8.2

_______________________________________________
osmosis-dev mailing list
[email protected]
http://lists.openstreetmap.org/listinfo/osmosis-dev

Reply via email to