Hi Martin,
A MultiPolygon made of a valid polygon and an empty polygon throws the
following exception if isValid is called :
java.lang.ArrayIndexOutOfBoundsException: 0
at
com.vividsolutions.jts.index.chain.MonotoneChain.getEnvelope(MonotoneChain.java:106)
at
com.vividsolutions.jts.algorithm.MCPointInRing.buildIndex(MCPointInRing.java:89)
at
com.vividsolutions.jts.algorithm.MCPointInRing.<init>(MCPointInRing.java:76)
at
com.vividsolutions.jts.operation.valid.IsValidOp.checkHolesInShell(IsValidOp.java:447)
at
com.vividsolutions.jts.operation.valid.IsValidOp.checkValid(IsValidOp.java:284)
at
com.vividsolutions.jts.operation.valid.IsValidOp.checkValid(IsValidOp.java:184)
at
com.vividsolutions.jts.operation.valid.IsValidOp.isValid(IsValidOp.java:153)
at
com.vividsolutions.jts.operation.valid.IsValidOp.isValid(IsValidOp.java:60)
at com.vividsolutions.jts.geom.Geometry.isValid(Geometry.java:441)
It is possible to make a short-circuit in IsValidOp for empty shell
(faster) and/or
to consider the case of empty coordinate arrays in MonotoChain (more
robust).
Do you still monitor JTS sourceforge bugtracker ? (If yes, I'll make a
bug report for this problem and for the one about Geometry.compare()
method I've reported on the list some days ago).
Michaƫl
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
Jts-topo-suite-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/jts-topo-suite-user