Skip to content

Refactor GeoJsonHandlerFactory query on create behavior #3899

@NinoFloris

Description

@NinoFloris

After fixing #3898 GeoJson would break entirely (it's already far from ideal today). Under lazy handler initialization the passed in connector is not ready to accept new commands and will throw. The query should be moved onto a different connection (anything else needs design work for the factory contract).

The next issue is, multiplexing has all connections share the same mapper and therefore the same write lock for handler inits. As a result any GeoJson(Factory) IO would block all connections from progressing for a while. We could instead spin the work off as a Task.Run item, caching the task (and passing it to the handler). However doing that means any errors don't get caught by #3897 anymore so it needs some careful refactoring to make sure any task errors don't result in the handler being broken. It would also potentially add sync over async.

An alternative would be to introduce new apis for plugins to register some out of band init actions.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions