cytoscape.js-expand-collapse icon indicating copy to clipboard operation
cytoscape.js-expand-collapse copied to clipboard

Collapsing a compound with label-sized nodes and parallel bezier edges crashes cytoscape

Open BarrensZeppelin opened this issue 2 years ago • 0 comments

Reproducible at CodePen: https://codepen.io/zii-hrs/pen/NWBmYBv Collapse the compound node to trigger this error:

Uncaught TypeError: e._private.map.get(...) is undefined
    poolIndex cytoscape.min.js:29
    y cytoscape.min.js:32
    updateStyleHints cytoscape.min.js:32
    apply cytoscape.min.js:32
    cleanStyle cytoscape.min.js:29
    parsedStyle cytoscape.min.js:29
    Ao cytoscape.min.js:29
    _o cytoscape.min.js:29
    Mo cytoscape.min.js:29
    Io cytoscape.min.js:29
    n cytoscape.min.js:29
    _o cytoscape.min.js:29
    Bo cytoscape.min.js:29
    isBundledBezier cytoscape.min.js:29
    n cytoscape.min.js:29
    _o cytoscape.min.js:29
    Bo cytoscape.min.js:29
    remove cytoscape.min.js:29
    removeChildren expandCollapseUtilities.js:569
    collapseNode expandCollapseUtilities.js:329
    collapseBottomUp expandCollapseUtilities.js:190
    simpleCollapseGivenNodes expandCollapseUtilities.js:61
    collapseGivenNodes expandCollapseUtilities.js:167
    collapse index.js:107
    eTap cueUtilities.js:269
    o cytoscape.min.js:29
    trigger cytoscape.min.js:29
    bo cytoscape.min.js:29
    trigger cytoscape.min.js:29
    emit cytoscape.min.js:32
    trigger cytoscape.min.js:29
    bo cytoscape.min.js:29
    trigger cytoscape.min.js:29
    emit cytoscape.min.js:29
    n cytoscape.min.js:32
    load cytoscape.min.js:32
    o cytoscape.min.js:32
    registerBinding cytoscape.min.js:32
    load cytoscape.min.js:32
    notify cytoscape.min.js:32
    notify cytoscape.min.js:32
    initRenderer cytoscape.min.js:32
    Ns cytoscape.min.js:32
    Gu cytoscape.min.js:32
    main pen.js:52
    EventListener.handleEvent* pen.js:115

It looks like the call to isBundledBezier ends up calling some method in cytoscape that depends on the source/target node existing, but the node has been removed before the call is made.

BarrensZeppelin avatar Feb 07 '23 09:02 BarrensZeppelin