Jukka,

Based on the stack trace you printed it looks like the Feature Info
plug-in and the Copy Selected Items write the geometry of the subject
features to WKT. Obviously the plug-ins are going to choke if they run
across a null geometry.

You might be able to modify the plug-ins to ignore the null geometries.

Does anyone else have comments or suggestions?

The Sunburned Surveyor

On Wed, Mar 10, 2010 at 7:25 AM, Rahkonen Jukka
<[email protected]> wrote:
> Hi,
>
> There was some discussion about how to handle features with no
> geometry.  Now I have a few shapefiles created with ogr2ogr from a database
> and sometimes the geometry is missing.  OpenJUMP opens these shapefiles OK
> and attributes are listed fine.  However, there is something odd in how OJ
> treats these shapes.
>
> Feature info or Copy selected items do not work. One of the tools gave me
> this exception:
>
> java.lang.NullPointerException
>         at
> com.vividsolutions.jump.io.FUTURE_JTS_WKTWriter.createFormatter(FUTURE_JTS_WKTWriter.java:46)
>         at
> com.vividsolutions.jump.io.FUTURE_JTS_WKTWriter.writeFormatted(FUTURE_JTS_WKTWriter.java:155)
>         at
> com.vividsolutions.jump.io.FUTURE_JTS_WKTWriter.write(FUTURE_JTS_WKTWriter.java:92)
>         at
> com.vividsolutions.jump.workbench.ui.plugin.InstallStandardFeatureTextWritersPlugIn$3.write(InstallStandardFeatureTextWritersPlugIn.java:53)
>         at
> com.vividsolutions.jump.workbench.ui.GeometryInfoTab$FeatureInfoWriterAdapter.toHTML(GeometryInfoTab.java:156)
>         at
> com.vividsolutions.jump.workbench.ui.FeatureInfoWriter.append(FeatureInfoWriter.java:171)
>         at
> com.vividsolutions.jump.workbench.ui.FeatureInfoWriter.writeGeom(FeatureInfoWriter.java:141)
>         at
> com.vividsolutions.jump.workbench.ui.GeometryInfoPanel.updateText(GeometryInfoPanel.java:99)
>         at
> com.vividsolutions.jump.workbench.ui.GeometryInfoPanel.layerAdded(GeometryInfoPanel.java:86)
>         at
> com.vividsolutions.jump.workbench.ui.InfoModel.add(InfoModel.java:88)
>         at
> com.vividsolutions.jump.workbench.ui.plugin.FeatureInfoPlugIn.execute(FeatureInfoPlugIn.java:83)
>         at
> com.vividsolutions.jump.workbench.ui.AttributeTab$14.execute(AttributeTab.java:427)
>         at
> com.vividsolutions.jump.workbench.plugin.AbstractPlugIn$1.actionPerformed(AbstractPlugIn.java:130)
>         at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
>         at javax.swing.AbstractButton$Handler.actionPerformed(Unknown
> Source)
>         at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown
> Source)
>         at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
>         at javax.swing.AbstractButton.doClick(Unknown Source)
>         at javax.swing.plaf.basic.BasicMenuItemUI.doClick(Unknown Source)
>         at
> javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(Unknown Source)
>         at java.awt.Component.processMouseEvent(Unknown Source)
>         at javax.swing.JComponent.processMouseEvent(Unknown Source)
>         at java.awt.Component.processEvent(Unknown Source)
>         at java.awt.Container.processEvent(Unknown Source)
>         at java.awt.Component.dispatchEventImpl(Unknown Source)
>         at java.awt.Container.dispatchEventImpl(Unknown Source)
>         at java.awt.Component.dispatchEvent(Unknown Source)
>         at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
>         at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
>         at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
>         at java.awt.Container.dispatchEventImpl(Unknown Source)
>         at java.awt.Window.dispatchEventImpl(Unknown Source)
>         at java.awt.Component.dispatchEvent(Unknown Source)
>         at java.awt.EventQueue.dispatchEvent(Unknown Source)
>         at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown
> Source)
>         at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
>         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown
> Source)
>         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
>         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
>         at java.awt.EventDispatchThread.run(Unknown Source)
>
> Another problem is that I cannot save data to shapefile due to geometry type
> check:
>
> com.vividsolutions.jump.io.IllegalParametersException: mixed geometry types
> found, please separate Polygons from Lines and Points when saving to *.shp
>  at
> com.vividsolutions.jump.io.ShapefileWriter.checkIfGeomsAreMixed(ShapefileWriter.java:577)
>  at
> com.vividsolutions.jump.io.ShapefileWriter.write(ShapefileWriter.java:252)
>  at
> com.vividsolutions.jump.io.datasource.ReaderWriterFileDataSource$1.executeUpdate(ReaderWriterFileDataSource.java:72)
>  at
> com.vividsolutions.jump.workbench.datasource.AbstractSaveDatasetAsPlugIn.run(AbstractSaveDatasetAsPlugIn.java:33)
>  at
> com.vividsolutions.jump.workbench.ui.task.TaskMonitorManager$TaskWrapper.run(TaskMonitorManager.java:151)
>  at java.lang.Thread.run(Unknown Source)
>
> Extract layers by geometry type separates the points but not null-geometries
> which seems to mean that there is no way to save the features without
> geometry back to shapefiles.  I wonder if null geometries really should
> really be considered as an own geometry type or if they could be accepted
> together with points, lines, polygons etc.  Who knows what shapefile
> specification says?
>
> If I save the opened shapefile as Jump xml and reopen the data previous
> things seem to work. I can copy the GEOMETRYCOLLECTION EMPTY feature to a
> new layer etc.  However, I noticed another issue: The attribute query tool
> does not list the attributes of Jump xml file.  Simple query tool works OK.
>
> -Jukka Rahkonen-
>
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> Jump-pilot-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>
>

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Jump-pilot-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to