Re: [osmosis-dev] Cannot represent -1 as a char.
Hi Scott, I've just modified the serialisation code to serialise the full 32-bit signed int instead of casting to an unsigned chararacter. This means that the internal serialisation format will be slightly less efficient but I suspect the difference will be immeasurable. Note that recently I updated the primary id to be stored as a 64-bit signed long instead of casting to a 32-bit signed int because some users of Osmosis were expected to run into the limit soon. That change has an even bigger impact to the serialised format (4 extra bytes versus 2) so this one isn't worth worrying about. Changing your code to 0 would have also worked, but at least this way there'll be no surprises for anybody else in the future who wishes to use negative ids. Cheers, Brett On Wed, Mar 9, 2011 at 3:39 PM, Scott Crosby sc...@sacrosby.com wrote: Brett, do you have any advice? In OsmosisBinaryParser, I'm using NOCHANGESET and NOVERSION when there's omitted metadata. Currently both are -1. The bug is because another serializer in osmosis is complaining that the version number is negative. We can set NOVERSION to 0, make that code more robust, or something else. Scott On Mon, Mar 7, 2011 at 8:01 AM, Nakor nakor@gmail.com wrote: Can you give me more of the stack trace? Scott Here you go: SEVERE: Thread for task 1-read-pbf failed org.openstreetmap.osmosis.core.OsmosisRuntimeException: Cannot represent -1 as a char. at org.openstreetmap.osmosis.core.util.IntAsChar.intToChar(IntAsChar.java:35) at org.openstreetmap.osmosis.core.domain.v0_6.CommonEntityData.store(CommonEntityData.java:186) at org.openstreetmap.osmosis.core.domain.v0_6.Entity.store(Entity.java:138) at org.openstreetmap.osmosis.core.domain.v0_6.Node.store(Node.java:184) at org.openstreetmap.osmosis.core.container.v0_6.NodeContainer.store(NodeContainer.java:49) at org.openstreetmap.osmosis.core.store.BaseObjectWriter.writeObject(BaseObjectWriter.java:63) at org.openstreetmap.osmosis.core.store.SimpleObjectStore.add(SimpleObjectStore.java:106) at org.openstreetmap.osmosis.tagfilter.v0_6.UsedNodeFilter.process(UsedNodeFilter.java:78) at org.openstreetmap.osmosis.core.container.v0_6.NodeContainer.process(NodeContainer.java:58) at org.openstreetmap.osmosis.tagfilter.v0_6.UsedNodeFilter.process(UsedNodeFilter.java:61) at org.openstreetmap.osmosis.tagfilter.v0_6.WayKeyValueFilter.process(WayKeyValueFilter.java:70) at org.openstreetmap.osmosis.core.container.v0_6.NodeContainer.process(NodeContainer.java:58) at org.openstreetmap.osmosis.tagfilter.v0_6.WayKeyValueFilter.process(WayKeyValueFilter.java:53) at crosby.binary.osmosis.OsmosisBinaryParser.parseDense(OsmosisBinaryParser.java:136) at crosby.binary.BinaryParser.parse(BinaryParser.java:107) at crosby.binary.BinaryParser.handleBlock(BinaryParser.java:51) at crosby.binary.file.FileBlock.process(FileBlock.java:117) at crosby.binary.file.BlockInputStream.process(BlockInputStream.java:15) at crosby.binary.osmosis.OsmosisReader.run(OsmosisReader.java:36) at java.lang.Thread.run(Unknown Source) Mar 7, 2011 9:01:05 AM org.openstreetmap.osmosis.core.Osmosis main SEVERE: Execution aborted. org.openstreetmap.osmosis.core.OsmosisRuntimeException: One or more tasks failed. at org.openstreetmap.osmosis.core.pipeline.common.Pipeline.waitForCompletion(Pipeline.java:146) at org.openstreetmap.osmosis.core.Osmosis.run(Osmosis.java:92) at org.openstreetmap.osmosis.core.Osmosis.main(Osmosis.java:37) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) at org.codehaus.classworlds.Launcher.main(Launcher.java:31) ___ osmosis-dev mailing list osmosis-dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/osmosis-dev ___ osmosis-dev mailing list osmosis-dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/osmosis-dev
Re: [osmosis-dev] Cannot represent -1 as a char.
Brett, do you have any advice? In OsmosisBinaryParser, I'm using NOCHANGESET and NOVERSION when there's omitted metadata. Currently both are -1. The bug is because another serializer in osmosis is complaining that the version number is negative. We can set NOVERSION to 0, make that code more robust, or something else. Scott On Mon, Mar 7, 2011 at 8:01 AM, Nakor nakor@gmail.com wrote: Can you give me more of the stack trace? Scott Here you go: SEVERE: Thread for task 1-read-pbf failed org.openstreetmap.osmosis.core.OsmosisRuntimeException: Cannot represent -1 as a char. at org.openstreetmap.osmosis.core.util.IntAsChar.intToChar(IntAsChar.java:35) at org.openstreetmap.osmosis.core.domain.v0_6.CommonEntityData.store(CommonEntityData.java:186) at org.openstreetmap.osmosis.core.domain.v0_6.Entity.store(Entity.java:138) at org.openstreetmap.osmosis.core.domain.v0_6.Node.store(Node.java:184) at org.openstreetmap.osmosis.core.container.v0_6.NodeContainer.store(NodeContainer.java:49) at org.openstreetmap.osmosis.core.store.BaseObjectWriter.writeObject(BaseObjectWriter.java:63) at org.openstreetmap.osmosis.core.store.SimpleObjectStore.add(SimpleObjectStore.java:106) at org.openstreetmap.osmosis.tagfilter.v0_6.UsedNodeFilter.process(UsedNodeFilter.java:78) at org.openstreetmap.osmosis.core.container.v0_6.NodeContainer.process(NodeContainer.java:58) at org.openstreetmap.osmosis.tagfilter.v0_6.UsedNodeFilter.process(UsedNodeFilter.java:61) at org.openstreetmap.osmosis.tagfilter.v0_6.WayKeyValueFilter.process(WayKeyValueFilter.java:70) at org.openstreetmap.osmosis.core.container.v0_6.NodeContainer.process(NodeContainer.java:58) at org.openstreetmap.osmosis.tagfilter.v0_6.WayKeyValueFilter.process(WayKeyValueFilter.java:53) at crosby.binary.osmosis.OsmosisBinaryParser.parseDense(OsmosisBinaryParser.java:136) at crosby.binary.BinaryParser.parse(BinaryParser.java:107) at crosby.binary.BinaryParser.handleBlock(BinaryParser.java:51) at crosby.binary.file.FileBlock.process(FileBlock.java:117) at crosby.binary.file.BlockInputStream.process(BlockInputStream.java:15) at crosby.binary.osmosis.OsmosisReader.run(OsmosisReader.java:36) at java.lang.Thread.run(Unknown Source) Mar 7, 2011 9:01:05 AM org.openstreetmap.osmosis.core.Osmosis main SEVERE: Execution aborted. org.openstreetmap.osmosis.core.OsmosisRuntimeException: One or more tasks failed. at org.openstreetmap.osmosis.core.pipeline.common.Pipeline.waitForCompletion(Pipeline.java:146) at org.openstreetmap.osmosis.core.Osmosis.run(Osmosis.java:92) at org.openstreetmap.osmosis.core.Osmosis.main(Osmosis.java:37) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) at org.codehaus.classworlds.Launcher.main(Launcher.java:31) ___ osmosis-dev mailing list osmosis-dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/osmosis-dev
Re: [osmosis-dev] Cannot represent -1 as a char.
Can you give me more of the stack trace? Scott Here you go: SEVERE: Thread for task 1-read-pbf failed org.openstreetmap.osmosis.core.OsmosisRuntimeException: Cannot represent -1 as a char. at org.openstreetmap.osmosis.core.util.IntAsChar.intToChar(IntAsChar.java:35) at org.openstreetmap.osmosis.core.domain.v0_6.CommonEntityData.store(CommonEntityData.java:186) at org.openstreetmap.osmosis.core.domain.v0_6.Entity.store(Entity.java:138) at org.openstreetmap.osmosis.core.domain.v0_6.Node.store(Node.java:184) at org.openstreetmap.osmosis.core.container.v0_6.NodeContainer.store(NodeContainer.java:49) at org.openstreetmap.osmosis.core.store.BaseObjectWriter.writeObject(BaseObjectWriter.java:63) at org.openstreetmap.osmosis.core.store.SimpleObjectStore.add(SimpleObjectStore.java:106) at org.openstreetmap.osmosis.tagfilter.v0_6.UsedNodeFilter.process(UsedNodeFilter.java:78) at org.openstreetmap.osmosis.core.container.v0_6.NodeContainer.process(NodeContainer.java:58) at org.openstreetmap.osmosis.tagfilter.v0_6.UsedNodeFilter.process(UsedNodeFilter.java:61) at org.openstreetmap.osmosis.tagfilter.v0_6.WayKeyValueFilter.process(WayKeyValueFilter.java:70) at org.openstreetmap.osmosis.core.container.v0_6.NodeContainer.process(NodeContainer.java:58) at org.openstreetmap.osmosis.tagfilter.v0_6.WayKeyValueFilter.process(WayKeyValueFilter.java:53) at crosby.binary.osmosis.OsmosisBinaryParser.parseDense(OsmosisBinaryParser.java:136) at crosby.binary.BinaryParser.parse(BinaryParser.java:107) at crosby.binary.BinaryParser.handleBlock(BinaryParser.java:51) at crosby.binary.file.FileBlock.process(FileBlock.java:117) at crosby.binary.file.BlockInputStream.process(BlockInputStream.java:15) at crosby.binary.osmosis.OsmosisReader.run(OsmosisReader.java:36) at java.lang.Thread.run(Unknown Source) Mar 7, 2011 9:01:05 AM org.openstreetmap.osmosis.core.Osmosis main SEVERE: Execution aborted. org.openstreetmap.osmosis.core.OsmosisRuntimeException: One or more tasks failed. at org.openstreetmap.osmosis.core.pipeline.common.Pipeline.waitForCompletion(Pipeline.java:146) at org.openstreetmap.osmosis.core.Osmosis.run(Osmosis.java:92) at org.openstreetmap.osmosis.core.Osmosis.main(Osmosis.java:37) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.codehaus.plexus.classworlds.launcher.Launcher.launchStandard(Launcher.java:329) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:239) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) at org.codehaus.classworlds.Launcher.main(Launcher.java:31) ___ osmosis-dev mailing list osmosis-dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/osmosis-dev
Re: [osmosis-dev] Cannot represent -1 as a char.
then I get the exception: SEVERE: Thread for task 1-read-pbf failed org.openstreetmap.osmosis.core.OsmosisRuntimeException: Cannot represent -1 as a char. at org.openstreetmap.osmosis.core.util.IntAsChar.intToChar(IntAsChar.java:35) at org.openstreetmap.osmosis.core.domain.v0_6.CommonEntityData.store(CommonEntityData.java:186) at org.openstreetmap.osmosis.core.domain.v0_6.Entity.store(Entity.java:138) at org.openstreetmap.osmosis.core.domain.v0_6.Node.store(Node.java:184) [...] Can you give me more of the stack trace? Scott ___ osmosis-dev mailing list osmosis-dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/osmosis-dev
[osmosis-dev] Cannot represent -1 as a char.
Hello, I have a set of file where I get the following error: org.openstreetmap.osmosis.core.OsmosisRuntimeException: Cannot represent -1 as a char. It looks like if a PBF file has been generated with omitmetadata then osmosis is having trouble to read it. If I start from http://planet.openstreetmap.org/pbf-experimental/planet-110302.osm.pbf and run osmosis --read-pbf file=planet-110302.osm.pbf --way-key-value keyValueList=natural.coastline --used-node --write-pbf file=planet-110302_coastline.osm.pbf Everything is fine. If I now extract from this planet file or just rewrite it with omitmetada: osmosis --read-pbf file=planet-110302.osm.pbf --write-pbf file=planet-110302_nomd.osm.pbf omitmetadata=true and try to extract coastlines osmosis --read-pbf file=planet-110302_nomd.osm.pbf --way-key-value keyValueList=natural.coastline --used-node --write-pbf file=planet-110302_coastline_nomd.osm.pbf then I get the exception: SEVERE: Thread for task 1-read-pbf failed org.openstreetmap.osmosis.core.OsmosisRuntimeException: Cannot represent -1 as a char. at org.openstreetmap.osmosis.core.util.IntAsChar.intToChar(IntAsChar.java:35) at org.openstreetmap.osmosis.core.domain.v0_6.CommonEntityData.store(CommonEntityData.java:186) at org.openstreetmap.osmosis.core.domain.v0_6.Entity.store(Entity.java:138) at org.openstreetmap.osmosis.core.domain.v0_6.Node.store(Node.java:184) [...] Other tasks like extracting a bounding box or writing to an XML file will work. Is this a bug or should I proceed differently? Thanks, N. ___ osmosis-dev mailing list osmosis-dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/osmosis-dev