Philipp Neuschwander created JENA-1820:
--
Summary: GeometryWrapper::asLiteral throws NullPointerException
for GMLDatatype, malformed lexicalForm
Key: JENA-1820
URL: https://issues.apache.org/jira/browse/JENA-1820
Project: Apache Jena
Issue Type: Bug
Components: Spatial
Affects Versions: Jena 3.13.1
Reporter: Philipp Neuschwander
GML-Literal of MultiPolygon/Polygon is malformed (generated by GMLWriter).
Under the gml:exterior and gml:interior node, there should be a linear ring
that contains the posList. But the posList is generated as a direct child to
gml:exterior/interior:
{code:java}
http://www.opengis.net/ont/gml";
srsName="http://www.opengis.net/def/crs/OGC/1.3/CRS84";>http://www.opengis.net/def/crs/OGC/1.3/CRS84";>0
0 10 0 10 10 0 10 0 05
5 7 7 7 5 5 54 4 4 5 5
5 4
4
{code}
The missing linearRing leads to NullPointerException when trying to call
{code:java}
geometryWrapper.asLiteral(GMLDatatype.INSTANCE)
{code}
as the GMLReader (I have no clue why it is called as part of the
asLiteral-call) tries to access the linearRing and it's posList child.
Stackstrace:
{code}
java.lang.NullPointerException: null
at
org.apache.jena.geosparql.implementation.parsers.gml.GMLReader.extractPosList(GMLReader.java:223)
~[jena-geosparql-3.13.1.jar:3.13.1]
at
org.apache.jena.geosparql.implementation.parsers.gml.GMLReader.buildLinearRing(GMLReader.java:503)
~[jena-geosparql-3.13.1.jar:3.13.1]
at
org.apache.jena.geosparql.implementation.parsers.gml.GMLReader.buildPolygon(GMLReader.java:477)
~[jena-geosparql-3.13.1.jar:3.13.1]
at
org.apache.jena.geosparql.implementation.parsers.gml.GMLReader.buildMultiSurface(GMLReader.java:644)
~[jena-geosparql-3.13.1.jar:3.13.1]
at
org.apache.jena.geosparql.implementation.parsers.gml.GMLReader.buildGeometry(GMLReader.java:199)
~[jena-geosparql-3.13.1.jar:3.13.1]
at
org.apache.jena.geosparql.implementation.parsers.gml.GMLReader.(GMLReader.java:108)
~[jena-geosparql-3.13.1.jar:3.13.1]
at
org.apache.jena.geosparql.implementation.parsers.gml.GMLReader.extract(GMLReader.java:707)
~[jena-geosparql-3.13.1.jar:3.13.1]
at
org.apache.jena.geosparql.implementation.datatype.GMLDatatype.read(GMLDatatype.java:84)
~[jena-geosparql-3.13.1.jar:3.13.1]
at
org.apache.jena.geosparql.implementation.index.GeometryLiteralIndex.retrieveMemoryIndex(GeometryLiteralIndex.java:77)
~[jena-geosparql-3.13.1.jar:3.13.1]
at
org.apache.jena.geosparql.implementation.index.GeometryLiteralIndex.retrieve(GeometryLiteralIndex.java:51)
~[jena-geosparql-3.13.1.jar:3.13.1]
at
org.apache.jena.geosparql.implementation.datatype.GeometryDatatype.parse(GeometryDatatype.java:57)
~[jena-geosparql-3.13.1.jar:3.13.1]
at
org.apache.jena.geosparql.implementation.datatype.GeometryDatatype.parse(GeometryDatatype.java:50)
~[jena-geosparql-3.13.1.jar:3.13.1]
at
org.apache.jena.geosparql.implementation.datatype.GeometryDatatype.parse(GeometryDatatype.java:32)
~[jena-geosparql-3.13.1.jar:3.13.1]
at
org.apache.jena.graph.impl.LiteralLabelImpl.setValue(LiteralLabelImpl.java:217)
~[jena-core-3.13.1.jar:3.13.1]
at
org.apache.jena.graph.impl.LiteralLabelImpl.setLiteralLabel_1(LiteralLabelImpl.java:111)
~[jena-core-3.13.1.jar:3.13.1]
at
org.apache.jena.graph.impl.LiteralLabelImpl.(LiteralLabelImpl.java:100)
~[jena-core-3.13.1.jar:3.13.1]
at
org.apache.jena.graph.impl.LiteralLabelFactory.create(LiteralLabelFactory.java:50)
~[jena-core-3.13.1.jar:3.13.1]
at
org.apache.jena.graph.NodeFactory.createLiteral(NodeFactory.java:171)
~[jena-core-3.13.1.jar:3.13.1]
at
org.apache.jena.rdf.model.ResourceFactory$Impl.createTypedLiteral(ResourceFactory.java:313)
~[jena-core-3.13.1.jar:3.13.1]
at
org.apache.jena.rdf.model.ResourceFactory.createTypedLiteral(ResourceFactory.java:148)
~[jena-core-3.13.1.jar:3.13.1]
at
org.apache.jena.geosparql.implementation.GeometryWrapper.asLiteral(GeometryWrapper.java:986)
~[jena-geosparql-3.13.1.jar:3.13.1]
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)