Modify

Opened 9 years ago

Closed 6 years ago

Last modified 6 years ago

#11607 closed defect (fixed)

RangeViolatedError: the new range must be within a single subrange

Reported by: soemisch@… Owned by: team
Priority: major Milestone: 18.02
Component: Core mappaint Version: tested
Keywords: range Cc: bastiK, Nzara, muerkelmann, v.v.chebotar@…, dieterdreist

Description (last modified by Don-vip)

Löschen von Zwischenpunkten bei Tramgleisen

Revision: 8491
Repository Root: http://josm.openstreetmap.de/svn
Relative URL: ^/trunk
Last Changed Author: Don-vip
Last Changed Date: 2015-06-16 23:27:08 +0200 (Tue, 16 Jun 2015)
Build-Date: 2015-06-16 21:45:58
URL: http://josm.openstreetmap.de/svn/trunk
Repository UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last Changed Rev: 8491

Identification: JOSM/1.5 (8491 de) Windows 7 64-Bit
Memory Usage: 742 MB / 910 MB (244 MB allocated, but free)
Java version: 1.8.0_45, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
Dataset consistency test: No problems found

Plugins:
- ImportImagePlugin (31241)
- PicLayer (31241)
- RoadSigns (31241)
- buildings_tools (31241)
- ext_tools (31241)
- geotools (31126)
- jts (31126)
- log4j (31231)
- measurement (31241)
- turnrestrictions (31241)
- utilsplugin2 (31241)

Last errors/warnings:
- E: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.AssertionError: the new range must be within a single subrange. Ursache: java.util.concurrent.ExecutionException: java.lang.AssertionError: the new range must be within a single subrange. Ursache: java.lang.AssertionError: the new range must be within a single subrange
- E: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.AssertionError: the new range must be within a single subrange. Ursache: java.util.concurrent.ExecutionException: java.lang.AssertionError: the new range must be within a single subrange. Ursache: java.lang.AssertionError: the new range must be within a single subrange
- E: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.AssertionError: the new range must be within a single subrange. Ursache: java.util.concurrent.ExecutionException: java.lang.AssertionError: the new range must be within a single subrange. Ursache: java.lang.AssertionError: the new range must be within a single subrange
- E: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.AssertionError: the new range must be within a single subrange. Ursache: java.util.concurrent.ExecutionException: java.lang.AssertionError: the new range must be within a single subrange. Ursache: java.lang.AssertionError: the new range must be within a single subrange
- E: java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.AssertionError: the new range must be within a single subrange. Ursache: java.util.concurrent.ExecutionException: java.lang.AssertionError: the new range must be within a single subrange. Ursache: java.lang.AssertionError: the new range must be within a single subrange

java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.AssertionError: the new range must be within a single subrange
	at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer$ConcurrentTasksHelper.process(StyledMapRenderer.java:1626)
	at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer.render(StyledMapRenderer.java:1660)
	at org.openstreetmap.josm.gui.layer.OsmDataLayer.paint(OsmDataLayer.java:347)
	at org.openstreetmap.josm.gui.MapView.paintLayer(MapView.java:534)
	at org.openstreetmap.josm.gui.MapView.paint(MapView.java:634)
	at javax.swing.JComponent.paintChildren(Unknown Source)
	at javax.swing.JComponent.paint(Unknown Source)
	at javax.swing.JComponent.paintChildren(Unknown Source)
	at javax.swing.JSplitPane.paintChildren(Unknown Source)
	at javax.swing.JComponent.paint(Unknown Source)
	at javax.swing.JComponent.paintChildren(Unknown Source)
	at javax.swing.JComponent.paint(Unknown Source)
	at javax.swing.JComponent.paintChildren(Unknown Source)
	at javax.swing.JComponent.paint(Unknown Source)
	at javax.swing.JComponent.paintChildren(Unknown Source)
	at javax.swing.JComponent.paint(Unknown Source)
	at javax.swing.JComponent.paintChildren(Unknown Source)
	at javax.swing.JComponent.paint(Unknown Source)
	at javax.swing.JLayeredPane.paint(Unknown Source)
	at javax.swing.JComponent.paintChildren(Unknown Source)
	at javax.swing.JComponent.paintToOffscreen(Unknown Source)
	at javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
	at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
	at javax.swing.RepaintManager.paint(Unknown Source)
	at javax.swing.JComponent.paint(Unknown Source)
	at java.awt.GraphicsCallback$PaintCallback.run(Unknown Source)
	at sun.awt.SunGraphicsCallback.runOneComponent(Unknown Source)
	at sun.awt.SunGraphicsCallback.runComponents(Unknown Source)
	at java.awt.Container.paint(Unknown Source)
	at java.awt.Window.paint(Unknown Source)
	at javax.swing.RepaintManager$4.run(Unknown Source)
	at javax.swing.RepaintManager$4.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
	at javax.swing.RepaintManager.access$1300(Unknown Source)
	at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
	at java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.awt.EventQueue.access$500(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.awt.EventQueue$3.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
	at java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.util.concurrent.ExecutionException: java.lang.AssertionError: the new range must be within a single subrange
	at java.util.concurrent.FutureTask.report(Unknown Source)
	at java.util.concurrent.FutureTask.get(Unknown Source)
	at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer$ConcurrentTasksHelper.process(StyledMapRenderer.java:1623)
	... 52 more
Caused by: java.lang.AssertionError: the new range must be within a single subrange
	at org.openstreetmap.josm.gui.mappaint.StyleCache.putImpl(StyleCache.java:187)
	at org.openstreetmap.josm.gui.mappaint.StyleCache.put(StyleCache.java:141)
	at org.openstreetmap.josm.gui.mappaint.StyleCache.put(StyleCache.java:132)
	at org.openstreetmap.josm.gui.mappaint.ElemStyles.getStyleCacheWithRange(ElemStyles.java:130)
	at org.openstreetmap.josm.gui.mappaint.ElemStyles.get(ElemStyles.java:68)
	at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer$ComputeStyleListWorker.add(StyledMapRenderer.java:1572)
	at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer$ComputeStyleListWorker.visit(StyledMapRenderer.java:1555)
	at org.openstreetmap.josm.data.osm.Relation.accept(Relation.java:167)
	at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer$ComputeStyleListWorker.call(StyledMapRenderer.java:1507)
	at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer$ComputeStyleListWorker.call(StyledMapRenderer.java:1473)
	at java.util.concurrent.FutureTask.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Attachments (0)

Change History (28)

comment:1 by Don-vip, 9 years ago

Component: CoreCore mappaint
Description: modified (diff)
Summary: Löschen von Zwischenpunkten bei TramgleisenAssertionError: the new range must be within a single subrange

comment:2 by Don-vip, 9 years ago

Cc: bastiK added

comment:3 by bastiK, 9 years ago

Thanks for reporting the problem! Which map styles were active when this happened? Just the default map style or did you load additional ones?

Is it correct that you got this error in select mode directly after pressing the delete key on the keyboard (with one node selected)?

comment:4 by soemisch@…, 9 years ago

Hallo bastiK,

The JOSM Standard (MapCSS) was active while deleting points. Further I used the Potlatch 2.
Yes, I deleted a set of not necessary points of a tram track. So I usually marked the point and pressed the delete key.

Kind Regards, Lars

comment:5 by bastiK, 9 years ago

In 8575/josm:

see #11607 - more debugging output for error in StyleCache

comment:6 by bastiK, 9 years ago

Please add another report if it happens with JOSM version >= 8575 (should contain more details about the error). Also, if you can describe how to reproduce the problem reliably, this would be extremely helpful.

comment:7 by bastiK, 9 years ago

Similar: #8997

comment:8 by Don-vip, 6 years ago

Ticket #13170 has been marked as a duplicate of this ticket.

comment:9 by Don-vip, 6 years ago

Ticket #15486 has been marked as a duplicate of this ticket.

comment:10 by Don-vip, 6 years ago

Ticket #15658 has been marked as a duplicate of this ticket.

comment:11 by Don-vip, 6 years ago

Cc: Nzara mpasha muerkelmann v.v.chebotar@… added
Keywords: range added
Priority: normalmajor
Summary: AssertionError: the new range must be within a single subrangeRangeViolatedError: the new range must be within a single subrange

comment:12 by Don-vip, 6 years ago

List of duplicate tickets: #11963 #13170 #14342 #14504 #15486 #15658

The last one includes a small list of map paint styles:

- https://josm.openstreetmap.de/josmfile?page=Styles/PTStops&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/PublicTransport&zip=1
+ https://josm.openstreetmap.de/josmfile?page=Styles/PublicTransportV2&zip=1
- http://www.openrailwaymap.org/styles/maxspeed.zip
- http://www.openrailwaymap.org/styles/standard.zip
- http://www.openrailwaymap.org/styles/electrified.zip
- http://www.openrailwaymap.org/styles/signals.zip
- https://josm.openstreetmap.de/josmfile?page=Styles/Power&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/PowerMapping&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/Modified&zip=1
- https://josm.openstreetmap.de/josmfile?page=Styles/LessObtrusiveNodes&zip=1

and some debug info:

java.lang.AssertionError: Range violated: the new range must be within a single subrange (2)
- object: way 28167237
- current style: org.openstreetmap.josm.gui.mappaint.StyleCache@1cf7a298
- scale: 1249.5028181264659
- new stylelist: [LineElemStyle{z_idx=[3.0/0.0/0.0] width=2.0 realWidth=0.0 color=#404040 dashed=[9.0, 9.0] dashedColor=#ffffff linejoin=round linecap=none}]
- new range: |s955.4628535647032-Infinity
org.openstreetmap.josm.gui.mappaint.DividedScale$RangeViolatedError: the new range must be within a single subrange (2)
	at org.openstreetmap.josm.gui.mappaint.DividedScale.putImpl(DividedScale.java:147)
	at org.openstreetmap.josm.gui.mappaint.DividedScale.put(DividedScale.java:102)
	at org.openstreetmap.josm.gui.mappaint.StyleCache.put(StyleCache.java:50)
	at org.openstreetmap.josm.gui.mappaint.ElemStyles.getStyleCacheWithRange(ElemStyles.java:191)
Last edited 6 years ago by Don-vip (previous) (diff)

comment:13 by Don-vip, 6 years ago

Ticket #15819 has been marked as a duplicate of this ticket.

comment:14 by Don-vip, 6 years ago

Cc: dieterdreist added

@bastiK: do you have any idea how to fix this?

comment:15 by bastiK, 6 years ago

In [13354]:

see #15819 - improve error log

in reply to:  14 comment:16 by bastiK, 6 years ago

Replying to Don-vip:

@bastiK: do you have any idea how to fix this?

No, but with [13354], it should be easier to isolate the problem.

comment:17 by Don-vip, 6 years ago

I finally managed to (accidentally) reproduce this issue! I will keep JOSM running so that I can connect VisualVM. Is there something in particular you would like to know/have to debug?

Relative:URL: ^/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2018-01-31 16:13:51 +0100 (Wed, 31 Jan 2018)
Revision:13376
Build-Date:2018-02-01 02:32:13
URL:http://josm.openstreetmap.de/svn/trunk

Identification: JOSM/1.5 (13376 en) Windows 10 64-Bit
OS Build number: Windows 10 Pro 1709 (16299)
Memory Usage: 421 MB / 4088 MB (144 MB allocated, but free)
Java version: 9.0.4+11, Oracle Corporation, Java HotSpot(TM) 64-Bit Server VM
Screen: \Display0 1920x1080, \Display1 1920x1080, \Display2 1280x1024
Maximum Screen Size: 1920x1080
VM arguments: [--add-modules=ALL-DEFAULT,javafx.deploy, -Djava.security.manager, -Djava.util.Arrays.useLegacyMergeSort=true, --add-modules=java.activation,java.se.ee, --add-exports=java.base/sun.security.util=ALL-UNNAMED, --add-exports=java.base/sun.security.x509=ALL-UNNAMED, --add-exports=java.desktop/com.apple.eawt=ALL-UNNAMED, --add-exports=java.desktop/com.sun.imageio.spi=ALL-UNNAMED, --add-exports=javafx.graphics/com.sun.javafx.application=ALL-UNNAMED, --add-exports=jdk.deploy/com.sun.deploy.config=ALL-UNNAMED, --add-opens=java.base/java.lang=ALL-UNNAMED, --add-opens=java.base/jdk.internal.loader=ALL-UNNAMED, --add-opens=java.desktop/javax.imageio.spi=ALL-UNNAMED, --add-opens=java.desktop/javax.swing.text.html=ALL-UNNAMED, --add-opens=java.prefs/java.util.prefs=ALL-UNNAMED, -Djnlpx.jvm=<java.home>\bin\javaw.exe, -Djnlpx.home=<java.home>, -Djnlpx.remove=false, -Djnlpx.offline=false, -Djnlpx.relaunch=true, -Djnlpx.session.data=%UserProfile%\AppData\Local\Temp\session5115672980912310574, -Djnlpx.heapsize=NULL,NULL, -Djava.security.policy=file:<java.home>\conf\security\javaws.policy, -DtrustProxy=true, -Djnlpx.origFilenameArg=%UserProfile%\AppData\LocalLow\Sun\Java\Deployment\cache\6.0\31\583aa85f-116ee0e0, --illegal-access=deny, --add-modules=ALL-DEFAULT, --add-exports=java.base/com.sun.net.ssl.internal.ssl=jdk.deploy, --add-exports=java.base/jdk.internal.misc=jdk.deploy, --add-exports=java.base/jdk.internal.util.jar=jdk.deploy, --add-exports=java.base/sun.net.www=jdk.deploy, --add-exports=java.base/sun.net.www.protocol.file=jdk.deploy, --add-exports=java.base/sun.net.www.protocol.http=jdk.deploy, --add-exports=java.base/sun.net.www.protocol.http.ntlm=jdk.deploy, --add-exports=java.base/sun.net.www.protocol.https=jdk.deploy, --add-exports=java.base/sun.net.www.protocol.jar=jdk.deploy, --add-exports=java.base/sun.nio=jdk.deploy, --add-exports=java.base/sun.reflect.misc=jdk.deploy, --add-exports=java.base/sun.security.action=jdk.deploy, --add-exports=java.base/sun.security.pkcs=jdk.deploy, --add-exports=java.base/sun.security.provider=jdk.deploy, --add-exports=java.base/sun.security.provider.certpath=jdk.deploy, --add-exports=java.base/sun.security.rsa=jdk.deploy, --add-exports=java.base/sun.security.ssl=jdk.deploy, --add-exports=java.base/sun.security.timestamp=jdk.deploy, --add-exports=java.base/sun.security.util=jdk.deploy, --add-exports=java.base/sun.security.validator=jdk.deploy, --add-exports=java.base/sun.security.x509=jdk.deploy, --add-exports=java.base/sun.usagetracker=jdk.deploy, --add-exports=java.desktop/sun.awt=jdk.deploy, --add-exports=java.naming/com.sun.jndi.toolkit.url=jdk.deploy, --add-exports=java.base/jdk.internal.misc=jdk.javaws, --add-exports=java.desktop/com.sun.media.sound=jdk.javaws, --add-exports=java.desktop/sun.awt=jdk.javaws, --add-exports=java.desktop/sun.awt.image=jdk.javaws, --add-exports=java.base/jdk.internal.misc=jdk.plugin, --add-exports=java.base/sun.net=jdk.plugin, --add-exports=java.base/sun.net.www=jdk.plugin, --add-exports=java.base/sun.net.www.protocol.jar=jdk.plugin, --add-exports=java.base/sun.security.action=jdk.plugin, --add-exports=java.base/sun.security.util=jdk.plugin, --add-exports=java.desktop/com.sun.media.sound=jdk.plugin, --add-exports=java.desktop/java.awt.peer=jdk.plugin, --add-exports=java.desktop/sun.applet=jdk.plugin, --add-exports=java.desktop/sun.applet.resources=jdk.plugin, --add-exports=java.desktop/sun.awt=jdk.plugin, --add-exports=java.desktop/sun.awt.windows=jdk.plugin, --add-exports=java.desktop/sun.swing=jdk.plugin, --add-exports=jdk.jsobject/jdk.internal.netscape.javascript.spi=jdk.plugin, --add-exports=java.desktop/sun.awt.image=jdk.plugin, -Djdk.module.main=jdk.plugin]
Dataset consistency test: No problems found

Plugins:
+ apache-commons (33668)
+ buildings_tools (34040)
+ cadastre-fr (33965)
+ ejml (32680)
+ geotools (33958)
+ jts (32699)
+ opendata (34019)
+ reverter (34036)
+ utilsplugin2 (33991)

Map paint styles:
+ https://pasharm.github.io/New_basic_style_for_JOSM/New_basic_style.mapcss

Last errors/warnings:
- W: Unable to convert property color to type class java.awt.Color: found # of type class java.lang.String!
- W: Unable to convert property color to type class java.awt.Color: found # of type class java.lang.String!
- W: Unable to convert property color to type class java.awt.Color: found # of type class java.lang.String!
- W: Unable to convert property color to type class java.awt.Color: found # of type class java.lang.String!
- W: Unable to convert property color to type class java.awt.Color: found # of type class java.lang.String!
- W: Unable to convert property color to type class java.awt.Color: found # of type class java.lang.String!
- E: Handled by bug report queue: java.lang.AssertionError. Cause: java.lang.AssertionError. Cause: java.lang.AssertionError: Range violated: the new range must be within a single subrange (2) (object: node 1249091578, current style: StyleCache{PLAIN: DS{[0.0, 477.7314267823516, 15287.405657035251, Infinity] [null, [NodeElement{z_idx=[4.95/0.0/0.0]  symbol=[symbolShape=CIRCLE size=0 stroke=java.awt.BasicStroke@d1a0003e strokeColor=java.awt.Color[r=74,g=74,b=74] fillColor=java.awt.Color[r=255,g=255,b=255]]}], null]} SELECTED: null}, scale: 181.03084829524738, new stylelist: [NodeElement{z_idx=[4.95/0.0/0.0]  symbol=[symbolShape=CIRCLE size=0 stroke=java.awt.BasicStroke@d1a0003e strokeColor=java.awt.Color[r=74,g=74,b=74] fillColor=java.awt.Color[r=255,g=255,b=255]]}], new range: |s119.4328566955879-15287.405657035251). Cause: org.openstreetmap.josm.gui.mappaint.DividedScale$RangeViolatedError: the new range must be within a single subrange (2)
- E: Handled by bug report queue: java.lang.AssertionError. Cause: java.lang.AssertionError. Cause: java.lang.AssertionError: Range violated: the new range must be within a single subrange (2) (object: node 1249091578, current style: StyleCache{PLAIN: DS{[0.0, 477.7314267823516, 15287.405657035251, Infinity] [null, [NodeElement{z_idx=[4.95/0.0/0.0]  symbol=[symbolShape=CIRCLE size=0 stroke=java.awt.BasicStroke@d1a0003e strokeColor=java.awt.Color[r=74,g=74,b=74] fillColor=java.awt.Color[r=255,g=255,b=255]]}], null]} SELECTED: null}, scale: 181.0297716733981, new stylelist: [NodeElement{z_idx=[4.95/0.0/0.0]  symbol=[symbolShape=CIRCLE size=0 stroke=java.awt.BasicStroke@d1a0003e strokeColor=java.awt.Color[r=74,g=74,b=74] fillColor=java.awt.Color[r=255,g=255,b=255]]}], new range: |s119.4328566955879-15287.405657035251). Cause: org.openstreetmap.josm.gui.mappaint.DividedScale$RangeViolatedError: the new range must be within a single subrange (2)
- E: Handled by bug report queue: java.lang.AssertionError. Cause: java.lang.AssertionError. Cause: java.lang.AssertionError: Range violated: the new range must be within a single subrange (2) (object: node 1249091578, current style: StyleCache{PLAIN: DS{[0.0, 477.7314267823516, 15287.405657035251, Infinity] [null, [NodeElement{z_idx=[4.95/0.0/0.0]  symbol=[symbolShape=CIRCLE size=0 stroke=java.awt.BasicStroke@d1a0003e strokeColor=java.awt.Color[r=74,g=74,b=74] fillColor=java.awt.Color[r=255,g=255,b=255]]}], null]} SELECTED: null}, scale: 181.02957592390706, new stylelist: [NodeElement{z_idx=[4.95/0.0/0.0]  symbol=[symbolShape=CIRCLE size=0 stroke=java.awt.BasicStroke@d1a0003e strokeColor=java.awt.Color[r=74,g=74,b=74] fillColor=java.awt.Color[r=255,g=255,b=255]]}], new range: |s119.4328566955879-15287.405657035251). Cause: org.openstreetmap.josm.gui.mappaint.DividedScale$RangeViolatedError: the new range must be within a single subrange (2)
- E: Handled by bug report queue: java.lang.AssertionError. Cause: java.lang.AssertionError. Cause: java.lang.AssertionError: Range violated: the new range must be within a single subrange (2) (object: node 1249091578, current style: StyleCache{PLAIN: DS{[0.0, 477.7314267823516, 15287.405657035251, Infinity] [null, [NodeElement{z_idx=[4.95/0.0/0.0]  symbol=[symbolShape=CIRCLE size=0 stroke=java.awt.BasicStroke@d1a0003e strokeColor=java.awt.Color[r=74,g=74,b=74] fillColor=java.awt.Color[r=255,g=255,b=255]]}], null]} SELECTED: null}, scale: 181.02957592390706, new stylelist: [NodeElement{z_idx=[4.95/0.0/0.0]  symbol=[symbolShape=CIRCLE size=0 stroke=java.awt.BasicStroke@d1a0003e strokeColor=java.awt.Color[r=74,g=74,b=74] fillColor=java.awt.Color[r=255,g=255,b=255]]}], new range: |s119.4328566955879-15287.405657035251). Cause: org.openstreetmap.josm.gui.mappaint.DividedScale$RangeViolatedError: the new range must be within a single subrange (2)


=== REPORTED CRASH DATA ===
BugReportExceptionHandler#handleException:
No data collected.

Warning issued by: BugReportExceptionHandler#handleException

=== STACK TRACE ===
Thread: AWT-EventQueue-2 (35) of javawsApplicationThreadGroup
java.lang.AssertionError
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinTask.reportException(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinTask.join(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool.invoke(Unknown Source)
	at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer.paintWithLock(StyledMapRenderer.java:1604)
	at org.openstreetmap.josm.data.osm.visitor.paint.StyledMapRenderer.render(StyledMapRenderer.java:1574)
	at org.openstreetmap.josm.gui.layer.OsmDataLayer.paint(OsmDataLayer.java:474)
	at org.openstreetmap.josm.gui.layer.AbstractMapViewPaintable$CompatibilityModeLayerPainter.paint(AbstractMapViewPaintable.java:27)
	at org.openstreetmap.josm.gui.MapView.paintLayer(MapView.java:470)
	at org.openstreetmap.josm.gui.MapView.drawMapContent(MapView.java:586)
	at org.openstreetmap.josm.gui.MapView.paint(MapView.java:492)
	at java.desktop/javax.swing.JComponent.paintChildren(Unknown Source)
	at java.desktop/javax.swing.JComponent.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintToOffscreen(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBufferedImpl(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.paint(Unknown Source)
	at java.desktop/javax.swing.JComponent._paintImmediately(Unknown Source)
	at java.desktop/javax.swing.JComponent.paintImmediately(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$4.run(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$4.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
	at java.desktop/javax.swing.RepaintManager.access$1200(Unknown Source)
	at java.desktop/javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
	at java.desktop/java.awt.event.InvocationEvent.dispatch(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEventImpl(Unknown Source)
	at java.desktop/java.awt.EventQueue.access$500(Unknown Source)
	at java.desktop/java.awt.EventQueue$3.run(Unknown Source)
	at java.desktop/java.awt.EventQueue$3.run(Unknown Source)
	at java.base/java.security.AccessController.doPrivileged(Native Method)
	at java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
	at java.desktop/java.awt.EventQueue.dispatchEvent(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.pumpEvents(Unknown Source)
	at java.desktop/java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.AssertionError
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
	at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
	at java.base/java.lang.reflect.Constructor.newInstance(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinTask.getThrowableException(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinTask.reportException(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinTask.join(Unknown Source)
	at org.openstreetmap.josm.data.osm.visitor.paint.ComputeStyleListWorker.compute(ComputeStyleListWorker.java:97)
	at org.openstreetmap.josm.data.osm.visitor.paint.ComputeStyleListWorker.compute(ComputeStyleListWorker.java:34)
	at java.base/java.util.concurrent.RecursiveTask.exec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinTask.doExec(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinPool.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ForkJoinWorkerThread.run(Unknown Source)
Caused by: java.lang.AssertionError: Range violated: the new range must be within a single subrange (2) (object: node 1249091578, current style: StyleCache{PLAIN: DS{[0.0, 477.7314267823516, 15287.405657035251, Infinity] [null, [NodeElement{z_idx=[4.95/0.0/0.0]  symbol=[symbolShape=CIRCLE size=0 stroke=java.awt.BasicStroke@d1a0003e strokeColor=java.awt.Color[r=74,g=74,b=74] fillColor=java.awt.Color[r=255,g=255,b=255]]}], null]} SELECTED: null}, scale: 181.03084829524738, new stylelist: [NodeElement{z_idx=[4.95/0.0/0.0]  symbol=[symbolShape=CIRCLE size=0 stroke=java.awt.BasicStroke@d1a0003e strokeColor=java.awt.Color[r=74,g=74,b=74] fillColor=java.awt.Color[r=255,g=255,b=255]]}], new range: |s119.4328566955879-15287.405657035251)
	at org.openstreetmap.josm.gui.mappaint.ElemStyles.getStyleCacheWithRange(ElemStyles.java:194)
	at org.openstreetmap.josm.gui.mappaint.ElemStyles.get(ElemStyles.java:127)
	at org.openstreetmap.josm.data.osm.visitor.paint.ComputeStyleListWorker.add(ComputeStyleListWorker.java:152)
	at org.openstreetmap.josm.data.osm.visitor.paint.ComputeStyleListWorker.visit(ComputeStyleListWorker.java:133)
	at org.openstreetmap.josm.data.osm.Node.accept(Node.java:223)
	at org.openstreetmap.josm.data.osm.visitor.paint.ComputeStyleListWorker.acceptDrawable(ComputeStyleListWorker.java:124)
	at org.openstreetmap.josm.data.osm.visitor.paint.ComputeStyleListWorker.computeDirectly(ComputeStyleListWorker.java:111)
	at org.openstreetmap.josm.data.osm.visitor.paint.ComputeStyleListWorker.compute(ComputeStyleListWorker.java:88)
	... 5 more
Caused by: org.openstreetmap.josm.gui.mappaint.DividedScale$RangeViolatedError: the new range must be within a single subrange (2)
	at org.openstreetmap.josm.gui.mappaint.DividedScale.putImpl(DividedScale.java:147)
	at org.openstreetmap.josm.gui.mappaint.DividedScale.put(DividedScale.java:102)
	at org.openstreetmap.josm.gui.mappaint.StyleCache.put(StyleCache.java:50)
	at org.openstreetmap.josm.gui.mappaint.ElemStyles.getStyleCacheWithRange(ElemStyles.java:191)
	... 12 more

comment:18 by bastiK, 6 years ago

Great, I'm investigating ...

comment:19 by Don-vip, 6 years ago

Great :) I have sent you the heap dump by mail.
What I did:

  • launched josm latest in jnlp with java 9.0.4
  • ran overpass api request to download footways in Toulouse:
          <tag key='query' value='[out:xml][timeout:50];&#xA;{{geocodeArea:Toulouse}}-&gt;.searchArea;&#xA;(&#xA;  way[&quot;highway&quot;=&quot;path&quot;](area.searchArea);&#xA;  way[&quot;highway&quot;=&quot;footway&quot;](area.searchArea);&#xA;  way[&quot;foot&quot;=&quot;yes&quot;](area.searchArea);&#xA;);&#xA;(._;&gt;;);&#xA;out meta;'/>
    
  • selected everything tagged with "sidewalk" and purge it
  • right click to drag the map => boum

in reply to:  19 comment:20 by stoecker, 6 years ago

Replying to Don-vip:

boum

English please! 😂

in reply to:  19 comment:21 by bastiK, 6 years ago

Replying to Don-vip:

Great :) I have sent you the heap dump by mail.
What I did:

  • launched josm latest in jnlp with java 9.0.4
  • ran overpass api request to download footways in Toulouse:
          <tag key='query' value='[out:xml][timeout:50];&#xA;{{geocodeArea:Toulouse}}-&gt;.searchArea;&#xA;(&#xA;  way[&quot;highway&quot;=&quot;path&quot;](area.searchArea);&#xA;  way[&quot;highway&quot;=&quot;footway&quot;](area.searchArea);&#xA;  way[&quot;foot&quot;=&quot;yes&quot;](area.searchArea);&#xA;);&#xA;(._;&gt;;);&#xA;out meta;'/>
    
  • selected everything tagged with "sidewalk" and purge it
  • right click to drag the map => boum

Okay, this one I can understand:

As the node has a parent way tagged footway=sidewalk and highway=footway the purging changes the applicable selectors, e.g. a rule like

way[highway]>node|z16-16 { symbol-shape: circle; symbol-size: 6; symbol-fill-color: #ffffff; symbol-stroke-color: #4A4A4A; }

no longer applies. Any action where a selector changes the evaluation status, but the style cache is not cleared for that primitive, can lead to range violation error.

The fix in this case should be to add

MapPaintStyles.getStyles().clearCached();

at some point after purging. I'll finish the fix on Sunday, unless you beat me to it.

comment:22 by bastiK, 6 years ago

Resolution: fixed
Status: newclosed

In 13420/josm:

fixed #11607 - RangeViolatedError: the new range must be within a single subrange

comment:23 by bastiK, 6 years ago

There may be other paths to trigger this error, but let's close the ticket for now.

comment:24 by Don-vip, 6 years ago

Milestone: 18.02

comment:25 by Don-vip, 6 years ago

We have a new report with r13500: #16120

comment:26 by mpasha, 6 years ago

Cc: mpasha removed

comment:27 by bastiK, 6 years ago

For the record, there are several strategies to deal with this error:

(a) Downgrade the exception to a warning message on the console. At the moment, it is so rare that no one will ever notice.
(b) Use a stable, but less efficient caching system. This means getting rid of the fragile code, at the cost of performance: The style would be recomputed at each zoom level, regardless of the zoom selector in the mapcss style.
(c) Carry on as we do now, i.e. try to find the root cause(s) and fix.

comment:28 by Don-vip, 6 years ago

I vote (c), let's try to find the root cause. Any lead with #16120 and #16150 reports?

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain team.
as The resolution will be set.
The resolution will be deleted. Next status will be 'reopened'.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.