Opened 4 years ago

Closed 4 years ago

#449 closed defect (fixed)

Assertion fails checking validity of polygon

Reported by: strk Owned by: strk
Priority: blocker Milestone: 3.4.0
Component: Default Version: svn-trunk
Severity: Critical Keywords:
Cc:

Description

See http://trac.osgeo.org/postgis/ticket/1007 for the dataset.

bool geos::operation::valid::IndexedNestedRingTester::isNonNested(): Assertion `innerRingPt!=null' failed.

Attachments (2)

bug449.xml (131.7 KB) - added by strk 4 years ago.
bug449-simp.xml (298 bytes) - added by strk 4 years ago.

Download all attachments as: .zip

Change History (13)

comment:1 Changed 4 years ago by strk

  • Owner changed from geos-devel@… to strk
  • Status changed from new to assigned

Changed 4 years ago by strk

comment:2 Changed 4 years ago by strk

Note: JTS (rev 398) also fails against the attached testcase:

Case bug449.xml - #1 (4): http://trac.osgeo.org/geos/ticket/449
Test Threw Exception (B isValid, true)     java.lang.NullPointerException

comment:3 Changed 4 years ago by strk

The message is correct: a triangle hole has all vertices touching nearby holes. I'll have to dig further in order to tell if that's an invalidity of input (sounds like )

Changed 4 years ago by strk

comment:4 Changed 4 years ago by strk

The bug449-simp.xml file is an extremely simplified version of the test. It's a polygon with two holes. One of the two holes shares all vertices with another hole, thus triggering the assertion failure. I pretty much belive this case being invalid, and I'm trying to think of a possible other _valid_ case. I dubt I'll find one though..

comment:5 Changed 4 years ago by strk

  • Resolution set to fixed
  • Status changed from assigned to closed

Fixed on the GEOS side with r3392. The changeset includes a proper XML (the one attached here was malformed). JTS still fails.

comment:6 Changed 4 years ago by strk

#451 is the backport to 3.2 branch

comment:7 Changed 4 years ago by strk

  • Resolution fixed deleted
  • Status changed from closed to reopened

JTS fixed this. It should be checked _how_ and make sure GEOS follows that.

comment:8 Changed 4 years ago by strk

Also, should be back-ported to 3.3 branch (trunk became 3.4.0 instead)

comment:10 Changed 4 years ago by strk

  • Milestone changed from 3.3.1 to 3.4.0
  • Version changed from 3.3.0 to svn-trunk

#456 is the backport to 3.3 branch

comment:11 Changed 4 years ago by strk

  • Resolution set to fixed
  • Status changed from reopened to closed

Re-done the JTS way with r3422 (reversion of older commit) and r3423 (new version). This new version has tests included in the JTS official ones.

Note: See TracTickets for help on using tickets.