Issue with Geomap-Plugin?

Hi,
I’m testing DMX. Just downloaded it, unpacked it, started it (on my PC). Works like charm. I like it. It’s great. I’ paticularly interested in the geomaps plugin. Read throught the docs. Created a person and an organisation with real-world addresses without any issues.
After deploying the geomaps-plugin (0.2, online since a few days), I expected to see the adresses indicated on a newly created geomap. But it shows just the map. And moreover, editing the data of the person in the topicmap causes an error - when and only when data in the address-section is concerned:

Blockquote

500 Server Error

{ “exception”: “java.lang.RuntimeException”, “message”: “Fetching and updating topic 4225 failed”, “cause”: { “exception”: “java.lang.RuntimeException”, “message”: “Updating topic 4225 failed”, “cause”: { “exception”: “java.lang.RuntimeException”, “message”: “Updating topic 4225 failed (typeUri=“dmx.contacts.person”)”, “cause”: { “exception”: “java.lang.RuntimeException”, “message”: "Value integration failed, newValues=TopicModelImpl {\n “id”: 4225,\n “uri”: “”,\n “typeUri”: “dmx.contacts.person”,\n “value”: “testperson Test”,\n “children”: {\n “dmx.contacts.person_name”: {\n “id”: 4241,\n “uri”: “”,\n “typeUri”: “dmx.contacts.person_name”,\n “value”: “testperson Test”,\n “children”: {\n “dmx.contacts.first_name”: {\n “id”: 4211,\n “uri”: “”,\n “typeUri”: “dmx.contacts.first_name”,\n “value”: “testperson”,\n “children”: {},\n “assoc”: {\n “id”: 4244,\n “uri”: “”,\n “typeUri”: “dmx.core.composition”,\n “value”: “”,\n “children”: {},\n “player1”: {\n “topicId”: 4211,\n “roleTypeUri”: “dmx.core.child”\n },\n “player2”: {\n “topicId”: 4241,\n “roleTypeUri”: “dmx.core.parent”\n }\n }\n },\n “dmx.contacts.last_name”: {\n “id”: 4236,\n “uri”: “”,\n “typeUri”: “dmx.contacts.last_name”,\n “value”: “Test”,\n “children”: {},\n “assoc”: {\n “id”: 4248,\n “uri”: “”,\n “typeUri”: “dmx.core.composition”,\n “value”: “”,\n “children”: {},\n “player1”: {\n “topicId”: 4236,\n “roleTypeUri”: “dmx.core.child”\n },\n “player2”: {\n “topicId”: 4241,\n “roleTypeUri”: “dmx.core.parent”\n }\n }\n }\n },\n “assoc”: {\n “id”: 4254,\n “uri”: “”,\n “typeUri”: “dmx.core.composition”,\n “value”: “”,\n “children”: {},\n “player1”: {\n “topicId”: 4241,\n “roleTypeUri”: “dmx.core.child”\n },\n “player2”: {\n “topicId”: 4225,\n “roleTypeUri”: “dmx.core.parent”\n }\n }\n },\n “dmx.base.url”: [{\n “id”: -1,\n “uri”: “”,\n “typeUri”: “dmx.base.url”,\n “value”: “”,\n “children”: {}\n }],\n “dmx.contacts.phone_number#dmx.contacts.phone_entry”: [{\n “id”: 4258,\n “uri”: “”,\n “typeUri”: “dmx.contacts.phone_number”,\n “value”: “+49 1577 1234567”,\n “children”: {},\n “assoc”: {\n “id”: 4263,\n “uri”: “”,\n “typeUri”: “dmx.contacts.phone_entry”,\n “value”: “work”,\n

Blockquote

After deletion of the geomaps-plugin in the deploy-folder, I can do changes on the address-data without any error again.
I’d appreciate propositions on how the solve these problems:

  • the address not showing up on the map
  • the impossiblitiy to edit the address

I guess your problem is related to geocoding. Every time you enter/update an (Postal) Address DMX utilizes the OpenStreetMap Geocoder to determine the address’s longitude/latitude. You have to be online for this to work.

Unfortunately the webclient truncates extensive error messages, so I can’t see the real problem cause. For the full error report see the terminal instead (which opens while DMX start). The last Caused by exception tells you the original problem.

Thank you for the question, and welcome to DMX!

Meanwhile I can reproduce your problem. The actual error root cause is:

Caused by: java.lang.RuntimeException: An error occurred in the PostCreateTopic listener of plugin "DMX Geomaps"
	at systems.dmx.core.impl.EventManager.dispatchEvent(EventManager.java:96)
	at systems.dmx.core.impl.EventManager.fireEvent(EventManager.java:59)
	at systems.dmx.core.impl.ValueIntegrator.integrate(ValueIntegrator.java:108)
	... 59 more
Caused by: java.lang.NoSuchMethodError: systems.dmx.core.util.ContextTracker.runsInTrackedContext()Z
	at systems.dmx.geomaps.GeomapsPlugin.abortGeocodingByExcecutionContext(GeomapsPlugin.java:354)
	at systems.dmx.geomaps.GeomapsPlugin.abortGeocoding(GeomapsPlugin.java:332)
	at systems.dmx.geomaps.GeomapsPlugin.postCreateTopic(GeomapsPlugin.java:210)

This is because dmx-geomaps plugin 0.2 is not compatible with DMX 5.0.1 (but with DMX 5.0 only).

I’ll adapt the geomaps-plugin, and provide a new version very soon.

In the meantime you can use the latest SNAPSHOT build of the geomaps-plugin. This will work with DMX 5.0.1:
https://download.dmx.systems/ci/dmx-geomaps/dmx-geomaps-0.2.1-SNAPSHOT_2020-08-23_10962.jar

Thank you very much for reporting, and sorry for any inconvenience!

Additional hint: when you enter addresses while geomaps-plugin is not installed the addresses will get no geo-coordinates, and will not appear on the geo-map, even if you install geomaps-plugin afterwards. Existing addresses will get geo-coordinates only when edited/saved once more. So you’re recommended to install the geomaps-plugin before you entering addresses.

WOW! It works!
Thank you for the quick answer and the fix with a ligthning speed!
Good luck for all you do!

I think, it would be great to have this hint also in the docs, maybe at the end of this section:
https://dmx.readthedocs.io/en/latest/plugins.html#the-geomaps-plugin

Good point!
Even better would be to improve the Geomaps plugin so that it would add geo-coordinates to existing Address topics automatically in the moment the plugin is installed.
I wrote a ticket: https://git.dmx.systems/dmx-plugins/dmx-geomaps/-/issues/2
This is easy to realize.

The geomaps plugin is in an early stage. It’s not much more than a proof of concept. We are in the process of improving the plugin, e.g. we also want have individual marker icons instead of the blue standard one. (BTW: are you a developer? :slight_smile:)

Your feedback is very much appreciated.

dmx-geomaps 0.2.1 is now released properly.
It is compatible with (and requires) DMX 5.0.1.
https://download.dmx.systems/plugins/dmx-geomaps/dmx-geomaps-0.2.1.jar

(the 0.2.1-SNAPSHOT works as well; no difference)

Hi jri,
unfortunately I’m not a developer, I’m a knowledge-worker with interest in coding for the purpose of visualisation. I’m happy to give feedback and contribute in other ways to help you make your software even better - especially because for me it’s the best I found until now. And I’ve been searching quiet a while …

Hello! I just added this hint to the documentation. Thanks for mentioning it!