locationtech / locationtech/geomesa
FSDS - Handle WMS Layer Preview LonLat out of bounds
Nobody has claimed this yet.
- Dominant language
- Scala
- Stars
- 1.5k
- Forks
- 446
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 31
Description
FSDS - Handle WMS Layer Preview LonLat out of bounds
In the GS layer preview you get Lon=261 when you click a point which throws an exception:
Caused by: java.lang.IllegalArgumentException: requirement failed: Range bounds must be ordered, but 3 > 0 at org.locationtech.sfcurve.zorder.ZRange.(ZRange.scala:20) at org.locationtech.geomesa.curve.Z2SFC$$anonfun$1.apply(Z2SFC.scala:41) at org.locationtech.geomesa.curve.Z2SFC$$anonfun$1.apply(Z2SFC.scala:41) at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245) at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:245) at scala.collection.immutable.List.foreach(List.scala:381) at scala.collection.TraversableLike$class.map(TraversableLike.scala:245) at scala.collection.immutable.List.map(List.scala:285) at org.locationtech.geomesa.curve.Z2SFC.ranges(Z2SFC.scala:41) at org.locationtech.geomesa.fs.storage.common.Z2Scheme.getCoveringPartitions(PartitionScheme.scala:280) at org.locationtech.geomesa.fs.storage.common.CompositeScheme$$anonfun$getCoveringPartitions$3.apply(PartitionScheme.scala:318) at org.locationtech.geomesa.fs.storage.common.CompositeScheme$$anonfun$getCoveringPartitions$3.apply(PartitionScheme.scala:318)
To reproduce ingest sample example csv from tools in /tmp, load in GS as a store, then click a point that is outside the normal -180,180 window for Lon. Chris Eichelberger may have some knowledge bc he might have fixed it for accumulo
Original JIRA Issue: https://geomesa.atlassian.net/browse/GEOMESA-1952
Key: GEOMESA-1952
Type: Bug
Priority: Major
Status: To Do
Resolution: Unresolved
Reporter: Andrew Hulbert
Created: Thu, 20 Jul 2017 10:09:19 -0400
Updated: Thu, 13 Dec 2018 14:50:23 -0500
Parent: GEOMESA-1905
Related Issues:
- Relates (is depended on by): GEOMESA-1705
Comments:
557058:85267d80-736b-42c9-898c-3b6267da6a7f (Thu, 20 Jul 2017 13:51:03 -0400):
here was the fix: https://github.com/locationtech/geomesa/commit/90b0b70329cff63b77273e6c6571a3eb4ec8ddc0
Probably running the query through the QueryPlanFilterVisitor will fix the issue:
filter.accept(new BindingFilterVisitor(sft), null).asInstanceOf[Filter] .accept(new QueryPlanFilterVisitor(sft), null).asInstanceOf[Filter]
557058:85267d80-736b-42c9-898c-3b6267da6a7f (Thu, 20 Jul 2017 13:52:30 -0400):
I think the fix discards the bbox instead of translating it, if that matters...
557058:da7f6dfa-f0a1-468b-aec5-2cb61273feb5 (Thu, 13 Dec 2018 13:41:36 -0500):
Verified this still affects 2.1
557058:3bdf14b8-308b-42a1-93b4-2ee86eacfbc7 (Thu, 13 Dec 2018 14:50:23 -0500):
wow really digging into the icebox!
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the WMS layer preview path and inspect Z2SFC.ranges at Z2SFC.scala:41, then follow Z2Scheme.getCoveringPartitions in PartitionScheme.scala:280. Review the linked commit and the suggested BindingFilterVisitor and QueryPlanFilterVisitor flow. Reproduce with the sample CSV and an out-of-range longitude such as 261; done means the preview no longer throws the range-bounds exception.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- scala
- Domain
- backend
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100