diff --git a/modules/core/src/main/java/org/locationtech/jts/operation/polygonize/Polygonizer.java b/modules/core/src/main/java/org/locationtech/jts/operation/polygonize/Polygonizer.java index 44f8bc0cab..d1535e136c 100644 --- a/modules/core/src/main/java/org/locationtech/jts/operation/polygonize/Polygonizer.java +++ b/modules/core/src/main/java/org/locationtech/jts/operation/polygonize/Polygonizer.java @@ -296,16 +296,23 @@ private static void findDisjointShells(List shellList) { findOuterShells(shellList); boolean isMoreToScan; + int lastUnsetNumber = -1; do { isMoreToScan = false; + int unsetNumber = 0; for (EdgeRing er : shellList) { if (er.isIncludedSet()) continue; + unsetNumber++; er.updateIncluded(); if (! er.isIncludedSet()) { isMoreToScan = true; } } + if (unsetNumber > 0 && unsetNumber == lastUnsetNumber) { + throw new IllegalStateException("Failed to polygonize with extractOnlyPolygonal option : input may not be correctly noded"); + } + lastUnsetNumber = unsetNumber; } while (isMoreToScan); } diff --git a/modules/core/src/test/java/org/locationtech/jts/operation/polygonize/PolygonizerTest.java b/modules/core/src/test/java/org/locationtech/jts/operation/polygonize/PolygonizerTest.java index 544030752e..a0d4323680 100644 --- a/modules/core/src/test/java/org/locationtech/jts/operation/polygonize/PolygonizerTest.java +++ b/modules/core/src/test/java/org/locationtech/jts/operation/polygonize/PolygonizerTest.java @@ -11,11 +11,13 @@ */ package org.locationtech.jts.operation.polygonize; +import java.util.ArrayList; import java.util.Collection; import java.util.List; import org.locationtech.jts.geom.Geometry; +import org.locationtech.jts.geom.LineString; import test.jts.GeometryTestCase; /** @@ -176,6 +178,23 @@ public void testUniqueInvalidRings2() { ); } + public void testInfiniteLoop() { + String wkt = "MULTILINESTRING (( -63.75499168013816 -33.02205642651592, -63.754991672499216 -33.022056427928675 ), ( -63.754991672499216 -33.022056427928675, -63.754973666148956 -33.022059758048776 ), ( -63.754973666148956 -33.022059758048776, -63.75497365007707 -33.02205976102113 ), ( -63.75497365007707 -33.02205976102113, -63.75497363887856 -33.0220597630922 ), ( -63.75497363887856 -33.0220597630922, -63.75497360309537 -33.02205976971, -63.754973595339976 -33.02205977026396 ), ( -63.754973595339976 -33.02205977026396, -63.754973561095376 -33.02205977271001, -63.754973593095364 -33.02205975370999, -63.754973595339976 -33.02205977026396 ), ( -63.754973595339976 -33.02205977026396, -63.75497360016258 -33.02205980583063 ), ( -63.75497360016258 -33.02205980583063, -63.75497360044203 -33.022059807891566 ), ( -63.75497360044203 -33.022059807891566, -63.75497360109538 -33.02205981271, -63.75497359611719 -33.02205981029633 ), ( -63.75497359611719 -33.02205981029633, -63.75497356809538 -33.02205979671, -63.754973598807474 -33.02205980732653 ), ( -63.754973598807474 -33.02205980732653, -63.75497360044203 -33.022059807891566 ), ( -63.75497360044203 -33.022059807891566, -63.75497362935344 -33.022059817885626 ), ( -63.75497362935344 -33.022059817885626, -63.75497363225962 -33.022059818890234 ), ( -63.75497363225962 -33.022059818890234, -63.75497364909538 -33.022059824710006, -63.75497365753473 -33.02205981111327 ), ( -63.75497365753473 -33.02205981111327, -63.754973663197944 -33.0220598019892 ), ( -63.754973663197944 -33.0220598019892, -63.754973666198474 -33.022059797155016 ), ( -63.754973666198474 -33.022059797155016, -63.75497366749389 -33.022059795067946 ), ( -63.75497366749389 -33.022059795067946, -63.75497366851474 -33.02205979342325 ), ( -63.75497366851474 -33.02205979342325, -63.75497368509537 -33.022059766709994, -63.754973666148956 -33.022059758048776 ), ( -63.754973666148956 -33.022059758048776, -63.75497365862449 -33.022059754609025 ), ( -63.75497365862449 -33.022059754609025, -63.75497365009538 -33.02205975071, -63.75497363887856 -33.0220597630922 ), ( -63.75497363887856 -33.0220597630922, -63.75497362048009 -33.02205978340221 ), ( -63.75497362048009 -33.02205978340221, -63.75497362043216 -33.02205978345512 ), ( -63.75497362043216 -33.02205978345512, -63.75497360016258 -33.02205980583063 ), ( -63.75497360016258 -33.02205980583063, -63.754973598807474 -33.02205980732653 ), ( -63.754973598807474 -33.02205980732653, -63.75497359611719 -33.02205981029633 ), ( -63.75497359611719 -33.02205981029633, -63.754973573095384 -33.02205983571001, -63.754973634095386 -33.02205988871, -63.75497369809538 -33.02205979671, -63.75497366851474 -33.02205979342325 ), ( -63.75497366851474 -33.02205979342325, -63.754973666129835 -33.02205979315826 ), ( -63.754973666129835 -33.02205979315826, -63.754973662095374 -33.02205979270999, -63.754973666198474 -33.022059797155016 ), ( -63.754973666198474 -33.022059797155016, -63.75497367409538 -33.02205980571001, -63.75497367428287 -33.02205980596 ), ( -63.75497367428287 -33.02205980596, -63.75497367709537 -33.02205980970999, -63.75497367174885 -33.0220598067397 ), ( -63.75497367174885 -33.0220598067397, -63.754973663197944 -33.0220598019892 ), ( -63.754973663197944 -33.0220598019892, -63.75497365909538 -33.02205979970999, -63.75497362935344 -33.022059817885626 ), ( -63.75497362935344 -33.022059817885626, -63.75497362309537 -33.02205982171001, -63.75497363225962 -33.022059818890234 ), ( -63.75497363225962 -33.022059818890234, -63.75497365753473 -33.02205981111327 ), ( -63.75497365753473 -33.02205981111327, -63.75497367174885 -33.0220598067397 ), ( -63.75497367174885 -33.0220598067397, -63.75497367428287 -33.02205980596 ), ( -63.75497367428287 -33.02205980596, -63.75497367509536 -33.02205980571, -63.75497366749389 -33.022059795067946 ), ( -63.75497366749389 -33.022059795067946, -63.754973666129835 -33.02205979315826 ), ( -63.754973666129835 -33.02205979315826, -63.754973645596614 -33.02205976441175 ), ( -63.754973645596614 -33.02205976441175, -63.75497364509536 -33.02205976371, -63.75497362048009 -33.02205978340221 ), ( -63.75497362048009 -33.02205978340221, -63.75497362009536 -33.02205978370999, -63.75497362043216 -33.02205978345512 ), ( -63.75497362043216 -33.02205978345512, -63.754973645596614 -33.02205976441175 ), ( -63.754973645596614 -33.02205976441175, -63.75497365007707 -33.02205976102113 ), ( -63.75497365007707 -33.02205976102113, -63.75497365709536 -33.022059755709996, -63.75497365862449 -33.022059754609025 ), ( -63.75497365862449 -33.022059754609025, -63.75497368209536 -33.022059737709995, -63.754973630095364 -33.022059751709996, -63.754973607095366 -33.022059767710005, -63.754973611095366 -33.022059755709996, -63.75497361009536 -33.02205973271, -63.754973597095365 -33.02205974271, -63.754973585095364 -33.022059741709995, -63.754973628085544 -33.02205970854614 ), ( -63.754973628085544 -33.02205970854614, -63.754973655095355 -33.02205968770999, -63.75497367709536 -33.02205967471, -63.75497362009537 -33.02205971671001, -63.754973628085544 -33.02205970854614 ), ( -63.754973628085544 -33.02205970854614, -63.75497366609535 -33.02205966971001, -63.75497371809535 -33.02205965371001, -63.75497371209533 -33.02205965071 ), ( -63.75497371209533 -33.02205965071, -63.75497371209532 -33.02205965071 ), ( -63.75497371209532 -33.02205965071, -63.75497370547034 -33.022059647397505 ), ( -63.75497370547034 -33.022059647397505, -63.75497370478581 -33.02205964705524 ), ( -63.75497370478581 -33.02205964705524, -63.75497369481467 -33.02205964206967 ), ( -63.75497369481467 -33.02205964206967, -63.75497369209534 -33.022059640710005, -63.754973695983345 -33.02205964185354 ), ( -63.754973695983345 -33.02205964185354, -63.75497370335123 -33.02205964402056 ), ( -63.75497370335123 -33.02205964402056, -63.75497370791274 -33.02205964536218 ), ( -63.75497370791274 -33.02205964536218, -63.75497370801405 -33.02205964539198 ), ( -63.75497370801405 -33.02205964539198, -63.754973708741154 -33.02205964560583 ), ( -63.754973708741154 -33.02205964560583, -63.754973709095346 -33.02205964571, -63.75497370869989 -33.02205964554303 ), ( -63.75497370869989 -33.02205964554303, -63.7549737080334 -33.02205964526163 ), ( -63.7549737080334 -33.02205964526163, -63.754973707856784 -33.022059645187056 ), ( -63.754973707856784 -33.022059645187056, -63.75497370291664 -33.022059643101215 ), ( -63.75497370291664 -33.022059643101215, -63.75497369874983 -33.0220596413419 ), ( -63.75497369874983 -33.0220596413419, -63.754973667976735 -33.02205962834882 ), ( -63.754973667976735 -33.02205962834882, -63.754973664095345 -33.02205962671001, -63.75497366471953 -33.02205962529519 ), ( -63.75497366471953 -33.02205962529519, -63.7549736651443 -33.022059624332385 ), ( -63.7549736651443 -33.022059624332385, -63.75497367409533 -33.022059604043356 ), ( -63.75497367409533 -33.022059604043356, -63.75497367490442 -33.02205960220943 ), ( -63.75497367490442 -33.02205960220943, -63.75497367909534 -33.022059592709994, -63.75497368036911 -33.02205959540451 ), ( -63.75497368036911 -33.02205959540451, -63.75497369220523 -33.02205962044247 ), ( -63.75497369220523 -33.02205962044247, -63.75497369756021 -33.0220596317703 ), ( -63.75497369756021 -33.0220596317703, -63.75497370181682 -33.022059640774685 ), ( -63.75497370181682 -33.022059640774685, -63.75497370291664 -33.022059643101215 ), ( -63.75497370291664 -33.022059643101215, -63.75497370335123 -33.02205964402056 ), ( -63.75497370335123 -33.02205964402056, -63.75497370478581 -33.02205964705524 ), ( -63.75497370478581 -33.02205964705524, -63.75497370509534 -33.02205964771001, -63.75497370547034 -33.022059647397505 ), ( -63.75497370547034 -33.022059647397505, -63.75497370791274 -33.02205964536218 ), ( -63.75497370791274 -33.02205964536218, -63.75497370796058 -33.02205964532231 ), ( -63.75497370796058 -33.02205964532231, -63.7549737080334 -33.02205964526163 ), ( -63.7549737080334 -33.02205964526163, -63.754973708344565 -33.02205964500232 ), ( -63.754973708344565 -33.02205964500232, -63.75497371672666 -33.02205963801724 ), ( -63.75497371672666 -33.02205963801724, -63.75497372309534 -33.022059632710004, -63.754973743384 -33.02205961934918 ), ( -63.754973743384 -33.02205961934918, -63.75497374344894 -33.02205961930641 ), ( -63.75497374344894 -33.02205961930641, -63.75497374899791 -33.02205961565221 ), ( -63.75497374899791 -33.02205961565221, -63.75497375492424 -33.022059611749505 ), ( -63.75497375492424 -33.022059611749505, -63.75497376409533 -33.022059605710005, -63.75497376545313 -33.02205961046228 ), ( -63.75497376545313 -33.02205961046228, -63.75497376655431 -33.02205961431639 ), ( -63.75497376655431 -33.02205961431639, -63.75497376809534 -33.02205961971, -63.7549737652452 -33.02205962608091 ), ( -63.7549737652452 -33.02205962608091, -63.75497376379997 -33.022059629311435 ), ( -63.75497376379997 -33.022059629311435, -63.75497375665898 -33.02205964527364 ), ( -63.75497375665898 -33.02205964527364, -63.75497375109535 -33.02205965771, -63.75497375609534 -33.02205965171001, -63.75497376056086 -33.022059649175524 ), ( -63.75497376056086 -33.022059649175524, -63.754973779053174 -33.02205963867989 ), ( -63.754973779053174 -33.02205963867989, -63.75497378851073 -33.02205963331209 ), ( -63.75497378851073 -33.02205963331209, -63.754973793095346 -33.02205963071001, -63.754973791352654 -33.02205963419539 ), ( -63.754973791352654 -33.02205963419539, -63.75497378127392 -33.022059654352844 ), ( -63.75497378127392 -33.022059654352844, -63.75497377809534 -33.02205966071, -63.75497377830377 -33.022059655916074 ), ( -63.75497377830377 -33.022059655916074, -63.754973779053174 -33.02205963867989 ), ( -63.754973779053174 -33.02205963867989, -63.754973779095344 -33.02205963771001, -63.75497378103069 -33.022059630987215 ), ( -63.75497378103069 -33.022059630987215, -63.75497378250921 -33.02205962585132 ), ( -63.75497378250921 -33.02205962585132, -63.754973785540066 -33.022059615323066 ), ( -63.754973785540066 -33.022059615323066, -63.75497378626153 -33.022059612816925 ), ( -63.75497378626153 -33.022059612816925, -63.75497378721655 -33.022059609499486 ), ( -63.75497378721655 -33.022059609499486, -63.754973798095335 -33.02205957171001, -63.75497381609532 -33.02205956171, -63.75497382709533 -33.02205960971, -63.75497378900635 -33.02205961260808 ), ( -63.75497378900635 -33.02205961260808, -63.75497378626153 -33.022059612816925 ), ( -63.75497378626153 -33.022059612816925, -63.75497378180758 -33.02205961315582 ), ( -63.75497378180758 -33.02205961315582, -63.75497376655431 -33.02205961431639 ), ( -63.75497376655431 -33.02205961431639, -63.754973762596386 -33.02205961461754 ), ( -63.754973762596386 -33.02205961461754, -63.754973756452486 -33.02205961508501 ), ( -63.754973756452486 -33.02205961508501, -63.754973752808915 -33.02205961536224 ), ( -63.754973752808915 -33.02205961536224, -63.75497375231698 -33.02205961539967 ), ( -63.75497375231698 -33.02205961539967, -63.75497374899791 -33.02205961565221 ), ( -63.75497374899791 -33.02205961565221, -63.75497373942471 -33.02205961638061 ), ( -63.75497373942471 -33.02205961638061, -63.754973735095334 -33.02205961671002, -63.75497374317731 -33.02205961922198 ), ( -63.75497374317731 -33.02205961922198, -63.75497374344894 -33.02205961930641 ), ( -63.75497374344894 -33.02205961930641, -63.75497374814935 -33.022059620767344 ), ( -63.75497374814935 -33.022059620767344, -63.754973752095324 -33.02205962199379 ), ( -63.754973752095324 -33.02205962199379, -63.7549737652452 -33.02205962608091 ), ( -63.7549737652452 -33.02205962608091, -63.75497377122245 -33.02205962793871 ), ( -63.75497377122245 -33.02205962793871, -63.75497378103069 -33.022059630987215 ), ( -63.75497378103069 -33.022059630987215, -63.75497378851073 -33.02205963331209 ), ( -63.75497378851073 -33.02205963331209, -63.754973791352654 -33.02205963419539 ), ( -63.754973791352654 -33.02205963419539, -63.75497380909534 -33.02205963971, -63.75497378127392 -33.022059654352844 ), ( -63.75497378127392 -33.022059654352844, -63.75497377830377 -33.022059655916074 ), ( -63.75497377830377 -33.022059655916074, -63.75497377109534 -33.02205965970999, -63.75497376056086 -33.022059649175524 ), ( -63.75497376056086 -33.022059649175524, -63.75497375665898 -33.02205964527364 ), ( -63.75497375665898 -33.02205964527364, -63.754973749095335 -33.02205963771001, -63.75497373009534 -33.02205964171001, -63.75497373641823 -33.02205963437545 ), ( -63.75497373641823 -33.02205963437545, -63.754973747296376 -33.02205962175679 ), ( -63.754973747296376 -33.02205962175679, -63.75497374814935 -33.022059620767344 ), ( -63.75497374814935 -33.022059620767344, -63.75497375209532 -33.02205961619002 ), ( -63.75497375209532 -33.02205961619002, -63.754973752808915 -33.02205961536224 ), ( -63.754973752808915 -33.02205961536224, -63.754973755095335 -33.022059612709995, -63.754973756452486 -33.02205961508501 ), ( -63.754973756452486 -33.02205961508501, -63.75497375909533 -33.02205961970999, -63.754973762596386 -33.02205961461754 ), ( -63.754973762596386 -33.02205961461754, -63.75497376545313 -33.02205961046228 ), ( -63.75497376545313 -33.02205961046228, -63.75497376879561 -33.02205960560048 ), ( -63.75497376879561 -33.02205960560048, -63.754973770095326 -33.02205960370999, -63.754973761095336 -33.02205959771001, -63.754973774095326 -33.02205958671001, -63.75497378721655 -33.022059609499486 ), ( -63.75497378721655 -33.022059609499486, -63.75497378900635 -33.02205961260808 ), ( -63.75497378900635 -33.02205961260808, -63.75497379309533 -33.02205961970999, -63.754973785540066 -33.022059615323066 ), ( -63.754973785540066 -33.022059615323066, -63.75497378180758 -33.02205961315582 ), ( -63.75497378180758 -33.02205961315582, -63.75497376879561 -33.02205960560048 ), ( -63.75497376879561 -33.02205960560048, -63.754973762095325 -33.02205960171, -63.75497375492424 -33.022059611749505 ), ( -63.75497375492424 -33.022059611749505, -63.75497375231698 -33.02205961539967 ), ( -63.75497375231698 -33.02205961539967, -63.75497375209532 -33.02205961570999, -63.75497375209532 -33.02205961619002 ), ( -63.75497375209532 -33.02205961619002, -63.754973752095324 -33.02205962199379 ), ( -63.754973752095324 -33.02205962199379, -63.754973752095324 -33.02205962470998, -63.754973747296376 -33.02205962175679 ), ( -63.754973747296376 -33.02205962175679, -63.754973743384 -33.02205961934918 ), ( -63.754973743384 -33.02205961934918, -63.75497374317731 -33.02205961922198 ), ( -63.75497374317731 -33.02205961922198, -63.75497373909533 -33.022059616709996, -63.75497373942471 -33.02205961638061 ), ( -63.75497373942471 -33.02205961638061, -63.75497374309533 -33.022059612709995, -63.75497372636683 -33.022059589636214 ), ( -63.75497372636683 -33.022059589636214, -63.75497371409532 -33.022059572710006, -63.75497375209533 -33.02205958071, -63.75497372636683 -33.022059589636214 ), ( -63.75497372636683 -33.022059589636214, -63.75497370794754 -33.02205959602658 ), ( -63.75497370794754 -33.02205959602658, -63.75497370587767 -33.022059596744704 ), ( -63.75497370587767 -33.022059596744704, -63.754973703095324 -33.022059597710005, -63.7549737009135 -33.02205959525545 ), ( -63.7549737009135 -33.02205959525545, -63.75497368709533 -33.02205957970998, -63.75497368276621 -33.022059589811256 ), ( -63.75497368276621 -33.022059589811256, -63.75497368036911 -33.02205959540451 ), ( -63.75497368036911 -33.02205959540451, -63.75497367653533 -33.022059604350005 ), ( -63.75497367653533 -33.022059604350005, -63.75497367509533 -33.022059607710005, -63.75497367409533 -33.022059604043356 ), ( -63.75497367409533 -33.022059604043356, -63.75497367286523 -33.022059599533 ), ( -63.75497367286523 -33.022059599533, -63.75497366909532 -33.02205958570999, -63.75497368276621 -33.022059589811256 ), ( -63.75497368276621 -33.022059589811256, -63.7549737009135 -33.02205959525545 ), ( -63.7549737009135 -33.02205959525545, -63.75497370587767 -33.022059596744704 ), ( -63.75497370587767 -33.022059596744704, -63.754973709095324 -33.02205959771, -63.75497370794754 -33.02205959602658 ), ( -63.75497370794754 -33.02205959602658, -63.75497367909533 -33.022059553709994, -63.75497367909533 -33.02205956070999, -63.75497365809534 -33.022059574710006, -63.75497366002583 -33.02205959980654 ), ( -63.75497366002583 -33.02205959980654, -63.75497366009533 -33.02205960071, -63.75497365956593 -33.02205960176881 ), ( -63.75497365956593 -33.02205960176881, -63.75497364809533 -33.02205962471, -63.75497365358588 -33.022059627283696 ), ( -63.75497365358588 -33.022059627283696, -63.75497368009534 -33.022059639709994, -63.754973667976735 -33.02205962834882 ), ( -63.754973667976735 -33.02205962834882, -63.75497366471953 -33.02205962529519 ), ( -63.75497366471953 -33.02205962529519, -63.75497366409533 -33.02205962471001, -63.7549736651443 -33.022059624332385 ), ( -63.7549736651443 -33.022059624332385, -63.75497368607055 -33.02205961679893 ), ( -63.75497368607055 -33.02205961679893, -63.75497368909533 -33.022059615710006, -63.75497369220523 -33.02205962044247 ), ( -63.75497369220523 -33.02205962044247, -63.75497370516009 -33.02205964015638 ), ( -63.75497370516009 -33.02205964015638, -63.754973708344565 -33.02205964500232 ), ( -63.754973708344565 -33.02205964500232, -63.75497370869989 -33.02205964554303 ), ( -63.75497370869989 -33.02205964554303, -63.754973708741154 -33.02205964560583 ), ( -63.754973708741154 -33.02205964560583, -63.75497371209533 -33.02205965071 ), ( -63.75497371209533 -33.02205965071, -63.754973712095335 -33.02205965071001, -63.75497371209532 -33.02205965071 ), ( -63.75497371209532 -33.02205965071, -63.75497370801405 -33.02205964539198 ), ( -63.75497370801405 -33.02205964539198, -63.75497370796058 -33.02205964532231 ), ( -63.75497370796058 -33.02205964532231, -63.754973707856784 -33.022059645187056 ), ( -63.754973707856784 -33.022059645187056, -63.75497370414072 -33.0220596403449 ), ( -63.75497370414072 -33.0220596403449, -63.75497369756021 -33.0220596317703 ), ( -63.75497369756021 -33.0220596317703, -63.75497368607055 -33.02205961679893 ), ( -63.75497368607055 -33.02205961679893, -63.75497367909533 -33.022059607710005, -63.75497367653533 -33.022059604350005 ), ( -63.75497367653533 -33.022059604350005, -63.75497367490442 -33.02205960220943 ), ( -63.75497367490442 -33.02205960220943, -63.75497367286523 -33.022059599533 ), ( -63.75497367286523 -33.022059599533, -63.754973663095335 -33.02205958671, -63.75497366002583 -33.02205959980654 ), ( -63.75497366002583 -33.02205959980654, -63.75497365956593 -33.02205960176881 ), ( -63.75497365956593 -33.02205960176881, -63.75497365358588 -33.022059627283696 ), ( -63.75497365358588 -33.022059627283696, -63.75497364809534 -33.02205965071001, -63.75497369481467 -33.02205964206967 ), ( -63.75497369481467 -33.02205964206967, -63.754973695983345 -33.02205964185354 ), ( -63.754973695983345 -33.02205964185354, -63.75497369874983 -33.0220596413419 ), ( -63.75497369874983 -33.0220596413419, -63.75497370181682 -33.022059640774685 ), ( -63.75497370181682 -33.022059640774685, -63.75497370414072 -33.0220596403449 ), ( -63.75497370414072 -33.0220596403449, -63.75497370516009 -33.02205964015638 ), ( -63.75497370516009 -33.02205964015638, -63.75497371672666 -33.02205963801724 ), ( -63.75497371672666 -33.02205963801724, -63.75497373641823 -33.02205963437545 ), ( -63.75497373641823 -33.02205963437545, -63.75497376379997 -33.022059629311435 ), ( -63.75497376379997 -33.022059629311435, -63.75497377122245 -33.02205962793871 ), ( -63.75497377122245 -33.02205962793871, -63.75497378250921 -33.02205962585132 ), ( -63.75497378250921 -33.02205962585132, -63.7549917251381 -33.02205630751593, -63.75499173062863 -33.022056284089615 ), ( -63.75499173062863 -33.022056284089615, -63.75499173660867 -33.02205625857475 ), ( -63.75499173660867 -33.02205625857475, -63.75499173706859 -33.02205625661244 ), ( -63.75499173706859 -33.02205625661244, -63.75499174013809 -33.02205624351591, -63.75499174990799 -33.022056256338914 ), ( -63.75499174990799 -33.022056256338914, -63.75499175194717 -33.02205625901534 ), ( -63.75499175194717 -33.02205625901534, -63.75499175357808 -33.02205626115592 ), ( -63.75499175357808 -33.02205626115592, -63.75499175613809 -33.02205626451593, -63.7549917631133 -33.02205627360484 ), ( -63.7549917631133 -33.02205627360484, -63.754991774602956 -33.0220562885762 ), ( -63.754991774602956 -33.0220562885762, -63.754991784899545 -33.022056301992954 ), ( -63.754991784899545 -33.022056301992954, -63.75499178500335 -33.02205630212821 ), ( -63.75499178500335 -33.02205630212821, -63.75499178505681 -33.022056302197875 ), ( -63.75499178505681 -33.022056302197875, -63.75499178913808 -33.02205630751589 ), ( -63.75499178913808 -33.02205630751589, -63.754991789138096 -33.02205630751591, -63.75499178913808 -33.022056307515896 ), ( -63.75499178913808 -33.022056307515896, -63.754991785783915 -33.02205630241173 ), ( -63.754991785783915 -33.02205630241173, -63.75499178574265 -33.02205630234893 ), ( -63.75499178574265 -33.02205630234893, -63.75499178538733 -33.02205630180823 ), ( -63.75499178538733 -33.02205630180823, -63.754991769247994 -33.02205627724839 ), ( -63.754991769247994 -33.02205627724839, -63.75499176613808 -33.02205627251592, -63.7549917631133 -33.02205627360484 ), ( -63.7549917631133 -33.02205627360484, -63.75499174218706 -33.02205628113829 ), ( -63.75499174218706 -33.02205628113829, -63.754991741138085 -33.02205628151592, -63.75499174176229 -33.02205628210111 ), ( -63.75499174176229 -33.02205628210111, -63.75499174501952 -33.022056285154754 ), ( -63.75499174501952 -33.022056285154754, -63.7549917571381 -33.0220562965159, -63.75499173062863 -33.022056284089615 ), ( -63.75499173062863 -33.022056284089615, -63.75499172513809 -33.02205628151593, -63.75499173660867 -33.02205625857475 ), ( -63.75499173660867 -33.02205625857475, -63.75499173713809 -33.02205625751592, -63.75499173706859 -33.02205625661244 ), ( -63.75499173706859 -33.02205625661244, -63.754991735138084 -33.02205623151592, -63.754991756138075 -33.02205621751591, -63.75499175613807 -33.02205621051592, -63.75499178499029 -33.02205625283249 ), ( -63.75499178499029 -33.02205625283249, -63.75499178613808 -33.02205625451592, -63.7549917829204 -33.022056253550616 ), ( -63.7549917829204 -33.022056253550616, -63.75499177795626 -33.02205625206137 ), ( -63.75499177795626 -33.02205625206137, -63.754991759808966 -33.022056246617176 ), ( -63.754991759808966 -33.022056246617176, -63.754991746138074 -33.02205624251591, -63.75499174990799 -33.022056256338914 ), ( -63.75499174990799 -33.022056256338914, -63.754991751138085 -33.022056260849276 ), ( -63.754991751138085 -33.022056260849276, -63.75499175213808 -33.022056264515925, -63.75499175357808 -33.02205626115592 ), ( -63.75499175357808 -33.02205626115592, -63.754991757411865 -33.02205625221042 ), ( -63.754991757411865 -33.02205625221042, -63.754991759808966 -33.022056246617176 ), ( -63.754991759808966 -33.022056246617176, -63.754991764138076 -33.02205623651591, -63.75499177795626 -33.02205625206137 ), ( -63.75499177795626 -33.02205625206137, -63.75499178013808 -33.02205625451591, -63.7549917829204 -33.022056253550616 ), ( -63.7549917829204 -33.022056253550616, -63.75499178499029 -33.02205625283249 ), ( -63.75499178499029 -33.02205625283249, -63.75499180340958 -33.02205624644212 ), ( -63.75499180340958 -33.02205624644212, -63.75499182913808 -33.022056237515905, -63.75499179113807 -33.02205622951592, -63.75499180340958 -33.02205624644212 ), ( -63.75499180340958 -33.02205624644212, -63.75499182013809 -33.0220562695159, -63.754991816467474 -33.02205627318651 ), ( -63.754991816467474 -33.02205627318651, -63.75499181613808 -33.0220562735159, -63.75499182022004 -33.022056276027875 ), ( -63.75499182022004 -33.022056276027875, -63.75499182042675 -33.022056276155084 ), ( -63.75499182042675 -33.022056276155084, -63.75499182433913 -33.0220562785627 ), ( -63.75499182433913 -33.0220562785627, -63.75499182913808 -33.0220562815159, -63.75499182913808 -33.022056278799695 ), ( -63.75499182913808 -33.022056278799695, -63.75499182913808 -33.022056272995925 ), ( -63.75499182913808 -33.022056272995925, -63.75499182913808 -33.02205627251591, -63.754991829359746 -33.022056272205575 ), ( -63.754991829359746 -33.022056272205575, -63.75499183196701 -33.0220562685554 ), ( -63.75499183196701 -33.0220562685554, -63.75499183913808 -33.0220562585159, -63.75499184583836 -33.02205626240639 ), ( -63.75499184583836 -33.02205626240639, -63.754991858850325 -33.022056269961716 ), ( -63.754991858850325 -33.022056269961716, -63.75499186258282 -33.022056272128964 ), ( -63.75499186258282 -33.022056272128964, -63.754991870138085 -33.02205627651589, -63.7549918660491 -33.02205626941398 ), ( -63.7549918660491 -33.02205626941398, -63.7549918642593 -33.022056266305384 ), ( -63.7549918642593 -33.022056266305384, -63.75499185113807 -33.022056243515905, -63.75499183813808 -33.02205625451591, -63.75499184713807 -33.0220562605159, -63.75499184583836 -33.02205626240639 ), ( -63.75499184583836 -33.02205626240639, -63.75499184249588 -33.022056267268184 ), ( -63.75499184249588 -33.022056267268184, -63.754991839639146 -33.02205627142344 ), ( -63.754991839639146 -33.02205627142344, -63.75499183613808 -33.022056276515904, -63.75499183349523 -33.02205627189091 ), ( -63.75499183349523 -33.02205627189091, -63.75499183213809 -33.02205626951591, -63.75499182985168 -33.02205627216814 ), ( -63.75499182985168 -33.02205627216814, -63.75499182913808 -33.022056272995925 ), ( -63.75499182913808 -33.022056272995925, -63.75499182519211 -33.02205627757325 ), ( -63.75499182519211 -33.02205627757325, -63.75499182433913 -33.0220562785627 ), ( -63.75499182433913 -33.0220562785627, -63.7549918071381 -33.02205629851591, -63.754991826138095 -33.022056294515906, -63.75499183370174 -33.02205630207955 ), ( -63.75499183370174 -33.02205630207955, -63.75499183760362 -33.02205630598142 ), ( -63.75499183760362 -33.02205630598142, -63.7549918481381 -33.022056316515894, -63.75499185534653 -33.02205631272198 ), ( -63.75499185534653 -33.02205631272198, -63.75499185831668 -33.02205631115874 ), ( -63.75499185831668 -33.02205631115874, -63.75499188613809 -33.022056296515885, -63.75499186839541 -33.02205629100128 ), ( -63.75499186839541 -33.02205629100128, -63.75499186555347 -33.02205629011797 ), ( -63.75499186555347 -33.02205629011797, -63.754991858073446 -33.022056287793106 ), ( -63.754991858073446 -33.022056287793106, -63.75499184228795 -33.02205628288681 ), ( -63.75499184228795 -33.02205628288681, -63.75499182913808 -33.022056278799695 ), ( -63.75499182913808 -33.022056278799695, -63.75499182519211 -33.02205627757325 ), ( -63.75499182519211 -33.02205627757325, -63.75499182049171 -33.022056276112316 ), ( -63.75499182049171 -33.022056276112316, -63.75499182022004 -33.022056276027875 ), ( -63.75499182022004 -33.022056276027875, -63.75499181213809 -33.02205627351592, -63.754991816467474 -33.02205627318651 ), ( -63.754991816467474 -33.02205627318651, -63.75499182604068 -33.02205627245811 ), ( -63.75499182604068 -33.02205627245811, -63.754991829359746 -33.022056272205575 ), ( -63.754991829359746 -33.022056272205575, -63.75499182985168 -33.02205627216814 ), ( -63.75499182985168 -33.02205627216814, -63.75499183349523 -33.02205627189091 ), ( -63.75499183349523 -33.02205627189091, -63.754991839639146 -33.02205627142344 ), ( -63.754991839639146 -33.02205627142344, -63.75499184359706 -33.022056271122295 ), ( -63.75499184359706 -33.022056271122295, -63.754991858850325 -33.022056269961716 ), ( -63.754991858850325 -33.022056269961716, -63.754991863304284 -33.02205626962282 ), ( -63.754991863304284 -33.02205626962282, -63.7549918660491 -33.02205626941398 ), ( -63.7549918660491 -33.02205626941398, -63.75499190413808 -33.02205626651589, -63.75499189313807 -33.02205621851589, -63.754991875138074 -33.02205622851591, -63.7549918642593 -33.022056266305384 ), ( -63.7549918642593 -33.022056266305384, -63.754991863304284 -33.02205626962282 ), ( -63.754991863304284 -33.02205626962282, -63.75499186258282 -33.022056272128964 ), ( -63.75499186258282 -33.022056272128964, -63.754991858073446 -33.022056287793106 ), ( -63.754991858073446 -33.022056287793106, -63.7549918561381 -33.02205629451591, -63.75499185609593 -33.022056295485775 ), ( -63.75499185609593 -33.022056295485775, -63.75499185534653 -33.02205631272198 ), ( -63.75499185534653 -33.02205631272198, -63.7549918551381 -33.022056317515904, -63.75499185831668 -33.02205631115874 ), ( -63.75499185831668 -33.02205631115874, -63.75499186839541 -33.02205629100128 ), ( -63.75499186839541 -33.02205629100128, -63.7549918701381 -33.02205628751589, -63.75499186555347 -33.02205629011797 ), ( -63.75499186555347 -33.02205629011797, -63.75499185609593 -33.022056295485775 ), ( -63.75499185609593 -33.022056295485775, -63.75499183760362 -33.02205630598142 ), ( -63.75499183760362 -33.02205630598142, -63.75499183313811 -33.0220563085159, -63.75499182813811 -33.02205631451591, -63.75499183370174 -33.02205630207955 ), ( -63.75499183370174 -33.02205630207955, -63.75499184228795 -33.02205628288681 ), ( -63.75499184228795 -33.02205628288681, -63.75499184513809 -33.0220562765159, -63.75499184359706 -33.022056271122295 ), ( -63.75499184359706 -33.022056271122295, -63.75499184249588 -33.022056267268184 ), ( -63.75499184249588 -33.022056267268184, -63.754991841138086 -33.02205626251591, -63.75499183196701 -33.0220562685554 ), ( -63.75499183196701 -33.0220562685554, -63.75499182604068 -33.02205627245811 ), ( -63.75499182604068 -33.02205627245811, -63.75499182049171 -33.022056276112316 ), ( -63.75499182049171 -33.022056276112316, -63.75499182042675 -33.022056276155084 ), ( -63.75499182042675 -33.022056276155084, -63.7549918001381 -33.022056289515916, -63.75499178538733 -33.02205630180823 ), ( -63.75499178538733 -33.02205630180823, -63.75499178507617 -33.022056302067526 ), ( -63.75499178507617 -33.022056302067526, -63.75499178500335 -33.02205630212821 ), ( -63.75499178500335 -33.02205630212821, -63.75499178495551 -33.02205630216808 ), ( -63.75499178495551 -33.02205630216808, -63.75499178251311 -33.02205630420341 ), ( -63.75499178251311 -33.02205630420341, -63.7549917821381 -33.02205630451592, -63.754991781828565 -33.02205630386114 ), ( -63.754991781828565 -33.02205630386114, -63.75499178039399 -33.02205630082646 ), ( -63.75499178039399 -33.02205630082646, -63.75499177995939 -33.02205629990711 ), ( -63.75499177995939 -33.02205629990711, -63.754991774602956 -33.0220562885762 ), ( -63.754991774602956 -33.0220562885762, -63.754991769247994 -33.02205627724839 ), ( -63.754991769247994 -33.02205627724839, -63.754991757411865 -33.02205625221042 ), ( -63.754991757411865 -33.02205625221042, -63.7549917561381 -33.022056249515906, -63.75499175194717 -33.02205625901534 ), ( -63.75499175194717 -33.02205625901534, -63.754991751138085 -33.022056260849276 ), ( -63.754991751138085 -33.022056260849276, -63.75499174218706 -33.02205628113829 ), ( -63.75499174218706 -33.02205628113829, -63.75499174176229 -33.02205628210111 ), ( -63.75499174176229 -33.02205628210111, -63.7549917411381 -33.02205628351594, -63.75499174501952 -33.022056285154754 ), ( -63.75499174501952 -33.022056285154754, -63.75499177995939 -33.02205629990711 ), ( -63.75499177995939 -33.02205629990711, -63.754991784899545 -33.022056301992954 ), ( -63.754991784899545 -33.022056301992954, -63.75499178507617 -33.022056302067526 ), ( -63.75499178507617 -33.022056302067526, -63.75499178574265 -33.02205630234893 ), ( -63.75499178574265 -33.02205630234893, -63.754991786138106 -33.0220563025159, -63.754991785783915 -33.02205630241173 ), ( -63.754991785783915 -33.02205630241173, -63.75499178505681 -33.022056302197875 ), ( -63.75499178505681 -33.022056302197875, -63.75499178495551 -33.02205630216808 ), ( -63.75499178495551 -33.02205630216808, -63.75499178039399 -33.02205630082646 ), ( -63.75499178039399 -33.02205630082646, -63.7549917691381 -33.022056297515924, -63.754991781828565 -33.02205630386114 ), ( -63.754991781828565 -33.02205630386114, -63.75499178251311 -33.02205630420341 ), ( -63.75499178251311 -33.02205630420341, -63.75499178913808 -33.02205630751589 ), ( -63.75499178913808 -33.02205630751589, -63.75499178913808 -33.022056307515896 ), ( -63.75499178913808 -33.022056307515896, -63.75499179513811 -33.0220563105159, -63.75499174313813 -33.022056326515916, -63.75499170512825 -33.02205636535212 ), ( -63.75499170512825 -33.02205636535212, -63.754991697138145 -33.02205637351593, -63.754991754138125 -33.022056331515905, -63.75499173213813 -33.02205634451592, -63.75499170512825 -33.02205636535212 ), ( -63.75499170512825 -33.02205636535212, -63.75499166213815 -33.02205639851593, -63.754991674138154 -33.022056399515925, -63.754991687138144 -33.02205638951593, -63.754991688138155 -33.022056412515916, -63.754991684138155 -33.02205642451593, -63.75499170713815 -33.02205640851591, -63.75499175913814 -33.02205639451591, -63.754991735667275 -33.022056411414944 ), ( -63.754991735667275 -33.022056411414944, -63.754991734138144 -33.022056412515916, -63.754991722639396 -33.02205642121768 ), ( -63.754991722639396 -33.02205642121768, -63.754991697474985 -33.02205644026101 ), ( -63.754991697474985 -33.02205644026101, -63.75499169713815 -33.02205644051591, -63.75499169752291 -33.022056440208104 ), ( -63.75499169752291 -33.022056440208104, -63.75499172213814 -33.02205642051592, -63.754991722639396 -33.02205642121768 ), ( -63.754991722639396 -33.02205642121768, -63.75499174317262 -33.022056449964175 ), ( -63.75499174317262 -33.022056449964175, -63.75499174453669 -33.02205645187387 ), ( -63.75499174453669 -33.02205645187387, -63.75499175213815 -33.02205646251592, -63.754991751325676 -33.02205646276591 ), ( -63.754991751325676 -33.02205646276591, -63.75499174879165 -33.02205646354561 ), ( -63.75499174879165 -33.02205646354561, -63.75499173457754 -33.022056467919185 ), ( -63.75499173457754 -33.022056467919185, -63.75499170930241 -33.02205647569615 ), ( -63.75499170930241 -33.02205647569615, -63.75499170013817 -33.022056478515914, -63.754991706396225 -33.022056474691546 ), ( -63.754991706396225 -33.022056474691546, -63.75499173613817 -33.022056456515905, -63.75499174024075 -33.02205645879511 ), ( -63.75499174024075 -33.02205645879511, -63.75499174879165 -33.02205646354561 ), ( -63.75499174879165 -33.02205646354561, -63.75499175413817 -33.0220564665159, -63.754991751325676 -33.02205646276591 ), ( -63.754991751325676 -33.02205646276591, -63.75499175113818 -33.02205646251592, -63.75499174324127 -33.02205645396093 ), ( -63.75499174324127 -33.02205645396093, -63.75499173913817 -33.0220564495159, -63.75499174317262 -33.022056449964175 ), ( -63.75499174317262 -33.022056449964175, -63.75499174555754 -33.022056450229165 ), ( -63.75499174555754 -33.022056450229165, -63.754991775138166 -33.0220564535159, -63.7549917111382 -33.02205654551592, -63.75499165013819 -33.022056492515944, -63.754991673159985 -33.02205646710225 ), ( -63.754991673159985 -33.02205646710225, -63.75499167585028 -33.022056464132454 ), ( -63.75499167585028 -33.022056464132454, -63.75499167720538 -33.022056462636556 ), ( -63.75499167720538 -33.022056462636556, -63.754991697474985 -33.02205644026101 ), ( -63.754991697474985 -33.02205644026101, -63.75499169752291 -33.022056440208104 ), ( -63.75499169752291 -33.022056440208104, -63.75499172713817 -33.02205640751592, -63.754991735667275 -33.022056411414944 ), ( -63.754991735667275 -33.022056411414944, -63.75499176213816 -33.02205642351592, -63.75499174555754 -33.022056450229165 ), ( -63.75499174555754 -33.022056450229165, -63.75499174453669 -33.02205645187387 ), ( -63.75499174453669 -33.02205645187387, -63.75499174324127 -33.02205645396093 ), ( -63.75499174324127 -33.02205645396093, -63.75499174024075 -33.02205645879511 ), ( -63.75499174024075 -33.02205645879511, -63.75499173457754 -33.022056467919185 ), ( -63.75499173457754 -33.022056467919185, -63.754991726138186 -33.022056481515925, -63.75499170930241 -33.02205647569615 ), ( -63.75499170930241 -33.02205647569615, -63.754991706396225 -33.022056474691546 ), ( -63.754991706396225 -33.022056474691546, -63.75499167748483 -33.022056464697485 ), ( -63.75499167748483 -33.022056464697485, -63.75499167585028 -33.022056464132454 ), ( -63.75499167585028 -33.022056464132454, -63.754991645138176 -33.02205645351592, -63.754991673159985 -33.02205646710225 ), ( -63.754991673159985 -33.02205646710225, -63.75499167813818 -33.022056469515924, -63.75499167748483 -33.022056464697485 ), ( -63.75499167748483 -33.022056464697485, -63.75499167720538 -33.022056462636556 ), ( -63.75499167720538 -33.022056462636556, -63.754991672499216 -33.022056427928675 ), ( -63.754991672499216 -33.022056427928675, -63.754991672382765 -33.022056427069884 ), ( -63.754991672382765 -33.022056427069884, -63.75499167013815 -33.02205641051592, -63.754991638138165 -33.022056429515956, -63.754991672382765 -33.022056427069884 ), ( -63.754991672382765 -33.022056427069884, -63.75499168013816 -33.02205642651592 ))"; + wkt = "MULTILINESTRING ((-63.75499178505681 -33.022056302197875, -63.75499178913808 -33.02205630751589), (-63.75499178913808 -33.02205630751589, -63.754991789138096 -33.02205630751591, -63.75499178913808 -33.022056307515896), (-63.75499178913808 -33.022056307515896, -63.754991785783915 -33.02205630241173), (-63.754991785783915 -33.02205630241173, -63.75499178505681 -33.022056302197875), (-63.75499178913808 -33.02205630751589, -63.75499178913808 -33.022056307515896))"; + wkt = "MULTILINESTRING (( 7 2, 7 4 ), ( 9 3, 7 2 ), ( 1 2, 7 4 ), ( 1 2, 1 4 ), ( 7 4, 9 3 ), ( 1 4, 7 2 ))"; + Geometry geom = read(wkt); + Exception exception = null; + try { + Polygonizer polygonizer = new Polygonizer(true); + polygonizer.add(geom); + polygonizer.getPolygons(); + } catch (IllegalStateException e) { + exception = e; + } + assertNotNull(exception); + assertTrue(exception instanceof IllegalStateException); + } + /* public void test2() {