Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Search blows up in huge diagram #2232

Closed
nikku opened this issue Sep 12, 2024 · 5 comments · Fixed by #2234
Closed

Search blows up in huge diagram #2232

nikku opened this issue Sep 12, 2024 · 5 comments · Fixed by #2234
Assignees
Labels
bug Something isn't working refactoring support Tracks features that make diagram changes easier

Comments

@nikku
Copy link
Member

nikku commented Sep 12, 2024

Describe the Bug

When I search a huge diagram then search blows up with the following error:

Uncaught TypeError: Cannot read properties of undefined (reading 'localeCompare')
    at compareStrings (BpmnSearchProvider.js:155:1)
    at eval (BpmnSearchProvider.js:72:1)
    at Array.sort (<anonymous>)
    at BpmnSearchProvider.find (BpmnSearchProvider.js:70:1)
    at SearchPad._search (SearchPad.js:186:1)
    at HTMLDivElement.eval (SearchPad.js:156:1)
    at HTMLDivElement.eval (delegate.js:35:1)

Steps to Reproduce

  1. Open huge diagram
  2. Search for a
  3. Observe error in console

Expected Behavior

Search gracefully handles search.

Environment

  • Browser: Chrome 110
  • OS: Linux
  • Library version: v17.11.0 (stage demo)
@nikku nikku added bug Something isn't working refactoring support Tracks features that make diagram changes easier ready Ready to be worked on labels Sep 12, 2024
@nikku
Copy link
Member Author

nikku commented Sep 12, 2024

As this is introduced by recent changes we should fix this. Moving to ready.

@philippfromme
Copy link
Contributor

Oh oh. I'll have a look.

@philippfromme
Copy link
Contributor

philippfromme commented Sep 12, 2024

Search blows up when getLabel returns undefined which happens with associations for example. A minimal diagram to reproduce is one with two associations:

image

@barmac
Copy link
Member

barmac commented Sep 12, 2024

I can reproduce it.

philippfromme added a commit that referenced this issue Sep 12, 2024
@bpmn-io-tasks bpmn-io-tasks bot added the in progress Currently worked on label Sep 12, 2024
@bpmn-io-tasks bpmn-io-tasks bot removed the ready Ready to be worked on label Sep 12, 2024
philippfromme added a commit that referenced this issue Sep 12, 2024
@bpmn-io-tasks bpmn-io-tasks bot added needs review Review pending and removed in progress Currently worked on labels Sep 12, 2024
@philippfromme
Copy link
Contributor

Fix incoming: #2234

nikku pushed a commit that referenced this issue Sep 16, 2024
@bpmn-io-tasks bpmn-io-tasks bot removed the needs review Review pending label Sep 16, 2024
ElRaptorus added a commit to 5minds/bpmn-js that referenced this issue Feb 4, 2025
# Changes 

Siehe Changelog:
https://github.com/bpmn-io/bpmn-js/blob/develop/CHANGELOG.md

## 18.1.2

* `FIX`: canvas `autoFocus` must explicitly be enabled
([bpmn-io/diagram-js#956](bpmn-io/diagram-js#956))
* `FIX`: properly integrate `zoomscroll` with canvas focus
([bpmn-io/diagram-js#956](bpmn-io/diagram-js#956))
* `FIX`: properly integrate `movecanvas` with canvas focus
([bpmn-io/diagram-js#956](bpmn-io/diagram-js#956))

## 18.1.1

* `FIX`: adjust search to prioritize start of word and exact matches
([bpmn-io/diagram-js#953](bpmn-io/diagram-js#953))
* `FIX`: ignore whitespace when searching
([bpmn-io/diagram-js#954](bpmn-io/diagram-js#954))

## 18.1.0

* `FIX`: clear selection when opening search pad
([bpmn-io/diagram-js#947](bpmn-io/diagram-js#947))
* `FIX`: correct dangling selection after search pad interaction
([bpmn-io/diagram-js#947](bpmn-io/diagram-js#947))
* `DEPS`: update to `diagram-js@15.2.2`

## 18.0.0

* `FEAT`: remove `outline` from `Viewer` modules
([bpmn-io#2135](bpmn-io#2135))
* `FEAT`: make `Canvas` a focusable element
([bpmn-io/diagram-js#662](bpmn-io/diagram-js#662))
* `FEAT`: implicit keyboard binding
([bpmn-io/diagram-js#662](bpmn-io/diagram-js#662))
* `FEAT`: integrate with global `search`
([bpmn-io#2235](bpmn-io#2235))
* `FEAT`: integrate `popup-menu` with `search`
([bpmn-io/diagram-js#932](bpmn-io/diagram-js#932))
* `FEAT`: recognize modern `search` tokens in `search-pad`
([bpmn-io/diagram-js#932](bpmn-io/diagram-js#932))
* `FIX`: correctly handle duplicate entries and whitespace in `search`
([bpmn-io/diagram-js#932](bpmn-io/diagram-js#932))
* `FIX`: find `search` terms across all keys
([bpmn-io/diagram-js#932](bpmn-io/diagram-js#932))
* `FIX`: `search` always returns tokens for matched items
([bpmn-io/diagram-js#932](bpmn-io/diagram-js#932))
* `FIX`: prevent crash during label adjustment
([bpmn-io#2239](bpmn-io#2239))
* `FIX`: keep existing loop characteristics when toggling through the
replace menu ([bpmn-io#2251](bpmn-io#2251))
* `FIX`: prevent covering multi selection with black box in `Viewer`
([bpmn-io#2135](bpmn-io#2135))
* `FIX`: generate types for main entry
([`986e2bb`](bpmn-io@986e2bb))
* `FIX`: correct handling of group name with whitespace only
([bpmn-io#2231](bpmn-io#2231))
* `DEPS`: update to `bpmn-moddle@9`
([bpmn-io#2114](bpmn-io#2114))
* `DEPS`: update to `diagram-js@15.1.0`
* `DEPS`: update to `diagram-js-direct-editing@3.2.0`

### Breaking Changes

* Require `Node >= 20`
* `Canvas` is now a focusable element and provides better support for
native browser behaviors. Focus can be controlled with new `focus` and
`restoreFocus` APIs
([bpmn-io/diagram-js#662](bpmn-io/diagram-js#662)).
* Keyboard is now implicitly bound to canvas SVG element. Calls to
`keyboard.bind` and `keyboard.bindTo` now result with a descriptive
console error and have no effect
([bpmn-io/diagram-js#662](bpmn-io/diagram-js#662)).

## 17.11.1

* `FIX`: handle searching elements without labels
([bpmn-io#2232](bpmn-io#2232),
[bpmn-io#2234](bpmn-io#2234))

## 17.11.0

* `FEAT`: align search styles with other popups
([bpmn-io#2187](bpmn-io#2187))
* `FEAT`: prioritize start of tokens in search results
([bpmn-io#2187](bpmn-io#2187))
* `FIX`: do not commit viewport changes on `ESC`
([bpmn-io#2189](bpmn-io#2189),
[bpmn-io#2187](bpmn-io#2187))
* `DEPS`: update to `diagram-js@14.10.0`

## 17.10.0

* `CHORE`: correct various type hints
([bpmn-io#2228](bpmn-io#2228))
* `FIX`: pasting compensation activity without boundary event
([bpmn-io#2070](bpmn-io#2070))
* `FIX`: lane resize constraints for se and nw direction
([bpmn-io#2209](bpmn-io#2209))
* `FIX`: auto place elements vertically in sub-processes
([bpmn-io#2127](bpmn-io#2127))
* `FIX`: hide lane label during direct editing
* `DEPS`: update to `diagram-js@14.9.0`

## 17.9.2

* `FIX`: keep direction when collapsing pools
([bpmn-io#2208](bpmn-io#2208))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working refactoring support Tracks features that make diagram changes easier
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants