Skip to content

Java: getLocation() result contains same location twice for some elements #7310

@Marcono1234

Description

@Marcono1234

Description

For some elements the result of getLocation() contains the (seemingly) same location twice. Absolute file path, line and column numbers all seem to match, but for some reason these are two separate Location entities.

(Note that there are also other cases where getLocation() has more than one result, but at different locations, see #5734 and #7309. However, the issue described here appears regardless of whether the project has multiple modules / sub-projects or not.)

Example query

import java

from Top t
where
  // Only consider results in source code
  t.getLocation().getFile().getExtension() = "java"
  // And there are at least two different Location elements
  and exists(Location location, Location otherLocation |
    location = t.getLocation()
    and otherLocation = t.getLocation()
    and location != otherLocation
  |
    // Only consider if in same file; ignore if file is present multiple times with different paths, see #5734
    location.getFile().getAbsolutePath() = otherLocation.getFile().getAbsolutePath()
  )
  // Only consider if all locations are exactly the same
  and count(t.getLocation().toString()) = 1
select t, t.getLocation()

Query Console link

Metadata

Metadata

Assignees

No one assigned

    Labels

    JavaquestionFurther information is requested

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions