stellasia / neomap

A Neo4j Desktop application to visualize nodes with geographic attributes on a map.
GNU General Public License v3.0
106 stars 13 forks source link

Available labels and properties are empty #87

Closed stellasia closed 3 years ago

stellasia commented 3 years ago

Capture d’écran de 2021-01-06 18-34-59

With error:

TypeError: Cannot read property 'getContext' of undefined
    at Neo4JService._getNeo4jDriver (neo4jService.js:11)
    at Neo4JService._runQuery (neo4jService.js:40)
    at Neo4JService.getNodeLabels (neo4jService.js:57)
    at Layer.getNodes (Layer.js:359)
    at Layer.componentDidMount (Layer.js:62)
    at commitLifeCycles (react-dom.development.js:19814)
    at commitLayoutEffects (react-dom.development.js:22803)
    at HTMLUnknownElement.callCallback (react-dom.development.js:188)
    at Object.invokeGuardedCallbackDev (react-dom.development.js:237)
    at invokeGuardedCallback (react-dom.development.js:292)
    at commitRootImpl (react-dom.development.js:22541)
    at unstable_runWithPriority (scheduler.development.js:653)
    at runWithPriority$1 (react-dom.development.js:11039)
    at commitRoot (react-dom.development.js:22381)
    at finishSyncRender (react-dom.development.js:21807)
    at performSyncWorkOnRoot (react-dom.development.js:21793)
    at scheduleUpdateOnFiber (react-dom.development.js:21188)
    at updateContainer (react-dom.development.js:24373)
    at react-dom.development.js:24758
    at unbatchedUpdates (react-dom.development.js:21903)
    at legacyRenderSubtreeIntoContainer (react-dom.development.js:24757)
    at Object.render (react-dom.development.js:24840)
    at Module../src/index.js (index.js:6)
    at __webpack_require__ (bootstrap:784)
    at fn (bootstrap:150)
    at Object.1 (neo4jService.js:163)
    at __webpack_require__ (bootstrap:784)
    at checkDeferredModules (bootstrap:45)
    at Array.webpackJsonpCallback [as push] (bootstrap:32)
    at main.chunk.js:1

Error: Failed to get driver
    at Neo4JService._runQuery (neo4jService.js:46)
    at async Neo4JService.getNodeLabels (neo4jService.js:60)
    at async Layer.getNodes (Layer.js:359)

@jodom https://github.com/stellasia/neomap/issues/78

okjodom commented 3 years ago

I wonder if this reproducible for all layer operations. Does it occur only in trying to select node labels of a specific layer type?

okjodom commented 3 years ago

Reproed this issue, and it's weird in that the driver boot works on current master, but connection is lost permanently after the first layer operation. Steps:

  1. Boot app with default layer on an active graph. On any of the layer types (tested with Lat/Lon and also Point (neo4j built-in))
  2. Use dropdowns to fully configure layer. Dropdowns get populated with live data, meaning driver is connected at this point
  3. Update / Create New Layer

Observation: Layer gets updated / Created and briefly rendered, then map goes back to blank state. The following sequence of errors are seen in debug console

 Unable to load preload script: C:\Program Files\Neo4j\resources\app.asar\src\app-GraphAppContainer\main\injectContext.js
(anonymous) @ init.ts:204
init.ts:205 Error: App Root path is not defined
    at doInject (C:\Program Files\Neo4j\resources\app.asar\src\app-GraphAppContainer\main\injectContext.js:13)
    at Object.<anonymous> (C:\Program Files\Neo4j\resources\app.asar\src\app-GraphAppContainer\main\injectContext.js:50)
    at Object.<anonymous> (C:\Program Files\Neo4j\resources\app.asar\src\app-GraphAppContainer\main\injectContext.js:54)
    at Module._compile (internal/modules/cjs/loader.js:880)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:892)
    at Module.load (internal/modules/cjs/loader.js:735)
    at Module._load (internal/modules/cjs/loader.js:648)
    at Module._load (electron/js2c/asar.js:717)
    at Function.Module._load (electron/js2c/asar.js:717)
    at Object.<anonymous> (init.ts:202)
(anonymous) @ init.ts:205
4neo4jService.js:32 TypeError: Cannot read property 'getContext' of undefined
    at neo4jService.js:11
    at c (runtime.js:63)
    at Generator._invoke (runtime.js:293)
    at Generator.next (runtime.js:118)
    at r (asyncToGenerator.js:3)
    at a (asyncToGenerator.js:25)
    at asyncToGenerator.js:32
    at new Promise (<anonymous>)
    at e._getNeo4jDriver (asyncToGenerator.js:21)
    at neo4jService.js:40

Intepretation:

App loses connection to neo4j window context and therefore neo4j driver connection is permanently lost.

image

stellasia commented 3 years ago

Fixed in #89 / #88