Modify

Opened 2 years ago

Last modified 2 years ago

#14287 new defect

Not capturing all elements when using ∈

Reported by: naoliv Owned by: team
Priority: normal Milestone:
Component: Core validator Version:
Keywords: performance regression Cc: simon04, Klumbumbus

Description

Validate the attached example file and see only one warning about amenity inside amenity - amenity=parking inside amenity=parking

Since we have 6 identical nodes, we should see 6 objects with a warning (and not only one).

JOSM:

URL:http://josm.openstreetmap.de/svn/trunk
Repository:UUID: 0c6e7542-c601-0410-84e7-c038aed88b3b
Last:Changed Date: 2017-01-25 02:17:36 +0100 (Wed, 25 Jan 2017)
Build-Date:2017-01-25 02:33:55
Revision:11490
Relative:URL: ^/trunk

Identification: JOSM/1.5 (11490 en) Linux Debian GNU/Linux 9.0 (stretch)
Memory Usage: 271 MB / 10206 MB (111 MB allocated, but free)
Java version: 1.8.0_111-8u111-b14-3-b14, Oracle Corporation, OpenJDK 64-Bit Server VM
Screen: :0.0 1600x900, :0.1 1280x1024
Maximum Screen Size: 1600x1024
Java package: openjdk-8-jre:amd64-8u111-b14-3
Java ATK Wrapper package: libatk-wrapper-java:all-0.33.3-13
VM arguments: [-Dawt.useSystemAAFontSettings=on]
Program arguments: [--language=en]
Dataset consistency test: No problems found

Attachments (1)

example.osm (1.5 KB) - added by naoliv 2 years ago.

Download all attachments as: .zip

Change History (11)

Changed 2 years ago by naoliv

Attachment: example.osm added

comment:1 Changed 2 years ago by naoliv

The test here is JOSM's node[amenity=parking] ∈ *[amenity=parking] { (...) but doing some local tests, the problem seems to be related with

comment:2 Changed 2 years ago by Don-vip

Milestone: 17.01

comment:3 Changed 2 years ago by Don-vip

In 11491/josm:

see #14287 - add non regression unit test

comment:4 Changed 2 years ago by Don-vip

Cc: simon04 added
Keywords: performance regression added

@Simon: This is a side effect of performance improvements done in r6609, especially this part in Selector.AbstractFinder.visit:

            public void visit(Collection<? extends OsmPrimitive> primitives) {
                for (OsmPrimitive p : primitives) {
                    if (e.child != null) {
                        // abort if first match has been found
                        break;
                    } else if (isPrimitiveUsable(p)) {
                        p.accept(this);
                    }
                }
            }

I have added a unit test to quickly debug the problem. Any hint about how to resolve this issue without a severe performance drawback?

comment:5 Changed 2 years ago by Don-vip

In 11492/josm:

see #14287 - add non regression unit test (forgot test file)

comment:6 Changed 2 years ago by Klumbumbus

Cc: Klumbumbus added

comment:7 Changed 2 years ago by Don-vip

Milestone: 17.0117.02

comment:8 Changed 2 years ago by Don-vip

Milestone: 17.0217.03

comment:9 Changed 2 years ago by Don-vip

Milestone: 17.0317.04

comment:10 Changed 2 years ago by Don-vip

Milestone: 17.04

Modify Ticket

Change Properties
Set your email in Preferences
Action
as new The owner will remain team.
as The resolution will be set.
to The owner will be changed from team to the specified user.
The owner will change to naoliv
as duplicate The resolution will be set to duplicate.The specified ticket will be cross-referenced with this ticket
The owner will be changed from team to anonymous.

Add Comment


E-mail address and name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.