Ecdar / Ecdar/Ecdar-GUI

Only close affected connections on Engine change

Open
#149 0 comments 0 reactions 0 assignees View on GitHub
bug enhancement
Dominant language
Java
Stars
3
Forks
5
PR merge metrics
No merged PRs in 30d

Description

When the user saves changes to the engines through the `EngineOptionsDialog`, all engines are re-instantiated and their connections are closed. It would be more efficient to only close the connections that are no longer in the active port range of the affected engines.

https://github.com/Ecdar/Ecdar-GUI/blob/a25b0994e654f940a06ebc760a87a0822ff0bcd3/src/main/java/ecdar/backend/BackendHelper.java#L121-L126

https://github.com/Ecdar/Ecdar-GUI/blob/a25b0994e654f940a06ebc760a87a0822ff0bcd3/src/main/java/ecdar/controllers/EngineOptionsDialogController.java#L73-L76

> :warning: This change might seem fairly easy, but it should include a refactor of the way engines are referenced and handled in the `EngineOptionsDialogController`.

This also becomes an issue if long-running queries are started and then the port range is changed for the associated engine in order to run other queries. This case would result in the long-running query being canceled. (Thanks to @Brandhoej for this example of the issue)

## Suggested approach
I suggest that the `EngineInstance` (the visual representation of the engine within the `EngineOptionsDialog`) does not operate on the engines, but instead takes an `Engine` as a constructor parameter for populating the input fields and then has a method for constructing an engine based on the values of these fields.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.