dmx-platform issueshttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues2024-03-22T14:06:47+01:00https://git.dmx.systems/dmx-platform/dmx-platform/-/issues/539CI: errors running javadocs2024-03-22T14:06:47+01:00Juergen NeumannCI: errors running javadocs@jri @rsc There are errors building the apidocs. When scrolling through https://git.dmx.systems/dmx-platform/dmx-platform/-/jobs/48836 I see a lot of warnings and errors. I guess this is not good. Can you help me please to fix the issue....@jri @rsc There are errors building the apidocs. When scrolling through https://git.dmx.systems/dmx-platform/dmx-platform/-/jobs/48836 I see a lot of warnings and errors. I guess this is not good. Can you help me please to fix the issue. You can check the results at https://apidocs.dmx.systems/ Thank you!Robert SchusterRobert Schusterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/537Revise Files API2024-03-02T21:44:34+01:00Jörg RichterRevise Files APIThe current Files API (DMX 5.3.4) does not support the use case described in dmx-plugins/dmx-linqa#38 very well, that is **transforming an uploaded file before storing** it in DMX file repo. The Files API should be revised.
@jpn FYIThe current Files API (DMX 5.3.4) does not support the use case described in dmx-plugins/dmx-linqa#38 very well, that is **transforming an uploaded file before storing** it in DMX file repo. The Files API should be revised.
@jpn FYIDMX 5.3.5Jörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/535Revise resource handling2024-02-22T23:33:14+01:00Jörg RichterRevise resource handlingCurrent resource handling (#504) is still not optimal.
The current approach causes confusion about
a) how webpack output coexists with static web resources, and
b) how to control what to include in git repo.
Webpack output should ...Current resource handling (#504) is still not optimal.
The current approach causes confusion about
a) how webpack output coexists with static web resources, and
b) how to control what to include in git repo.
Webpack output should go to `target/`, not `src/`.
`src/main/resources/web/` should not be .gitignored.
The `resources-static/` directory is possibly not needed then.
See https://git.dmx.systems/dmx-plugins/dmx-sign-up-ui/-/issues/15#note_26032
@rsc FYIDMX 5.3.4Jörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/534introduce a way to restrict authorization methods via configuration2023-12-09T11:00:10+01:00Robert Schusterintroduce a way to restrict authorization methods via configurationdmx-sign-up has a config parameters that currently influences which authorization methods are available (and in what order). This option however only has an effect on the web ui that the plugin renders itself. Additionally the option is ...dmx-sign-up has a config parameters that currently influences which authorization methods are available (and in what order). This option however only has an effect on the web ui that the plugin renders itself. Additionally the option is completely cosmetic because the platform itself still allows login with whatever available authorization method.
ACs:
- configure allowed authorization methods via property dmx.security.restrict_auth_methods
- the property should contain comma-separated a list of allowed authorization methods
- the platform should only allow logins with the mentioned authorization methods
- the function List<String> getAuthorizationMethods() should only return the authorization methods that are left after having applied the filter list from the configuration option
- the order of the items in the filter list should be reflected in the getAuthorizationMethods() function
See
https://git.dmx.systems/dmx-plugins/dmx-sign-up-ui/-/issues/12https://git.dmx.systems/dmx-platform/dmx-platform/-/issues/526Adopt in-map details design from Kuoho2023-10-26T23:37:36+02:00Jörg RichterAdopt in-map details design from KuohoBit by bit we want move parts from the Kuohu UI to the Webclient.
This ticket is about the in-map details design which looks much better than the Webclient's one:
![grafik](/uploads/3ea5c87eb4c172e557c962254705bb35/grafik.png)
![grafik...Bit by bit we want move parts from the Kuohu UI to the Webclient.
This ticket is about the in-map details design which looks much better than the Webclient's one:
![grafik](/uploads/3ea5c87eb4c172e557c962254705bb35/grafik.png)
![grafik](/uploads/10840cb09cfe6ace6a7147b989670f93/grafik.png)
Some conceptualization is still required though. :smile:
@irau @gev @tta @jpn FYIDMX 5.4https://git.dmx.systems/dmx-platform/dmx-platform/-/issues/513Can't add/remove multi-values and reorder at the same time2023-11-11T15:28:41+01:00Jörg RichterCan't add/remove multi-values and reorder at the same timeRegarding editing multi-values (cardinality "many") the detail panel has a limitation: when adding or removing a value (+/- buttons) *and* do reordering values (dragging) the reordering does not happen once saved. Added values always app...Regarding editing multi-values (cardinality "many") the detail panel has a limitation: when adding or removing a value (+/- buttons) *and* do reordering values (dragging) the reordering does not happen once saved. Added values always appear *at the end* of the sequence. That is you can't add/remove *and* reorder at the same time. Workaround: after adding/removing do "Save" and do the reordering in another "Edit" step.
Thanks to @gev for reporting!
@jpn FYIJörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/505Robustness: render topicmaps w/ corrupt view props2023-05-22T16:14:55+02:00Jörg RichterRobustness: render topicmaps w/ corrupt view propsAt the moment if a topic (or assoc) lacks a required view prop, or its value has the wrong type, the entire topicmap fails to load, and can't be displayed in the Webclient. The (server-side) messages are e.g. `'dmx.topicmaps.x' property ...At the moment if a topic (or assoc) lacks a required view prop, or its value has the wrong type, the entire topicmap fails to load, and can't be displayed in the Webclient. The (server-side) messages are e.g. `'dmx.topicmaps.x' property not found` or `java.lang.Double cannot be cast to java.lang.Integer`.
Instead the problematic values should be automatically repaired somehow, so the topicmap is still able to be rendered.
This is a follow-up of a forum posting:
https://forum.dmx.systems/t/dmx-topicmaps-x-property-not-found/146
See also #282 (which is similar but different).
@jpn FYIJörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/502Instantiation of new Composition Definition Child property not persisted2022-03-21T16:58:04+01:00Ingo RauInstantiation of new Composition Definition Child property not persisted@jri
For a new project I tried out some customization options. The idea behind it: By means of an additional attribute `Show inmap`, a custom interface can decide whether to display a certain value for an entity or not. I encountered t...@jri
For a new project I tried out some customization options. The idea behind it: By means of an additional attribute `Show inmap`, a custom interface can decide whether to display a certain value for an entity or not. I encountered the following problem:
## Steps performed
* download latest DMX 5.2.1 from dmx.berlin
* start locally and login with default credentials (u: admin / p: )
* in DMX workspace create new Topic Type `Show inmap` / Type URI: dmx.custom.show-inmap / Data Type: Boolean
* Add `Show inmap` as new property to existing _Composition Definition_ Association Type
* Edit _Composition Definition_ Instantiation `Organization` > `Organization Description` and set `Show inmap` to TRUE. Save changes.
## Problem observed
The above described actions could all be performed without error messages in the console. dmx-webclient reflects these actions. If I close the database though (STRG + C in Terminal) and restart it, `Show inmap` = TRUE is not persistent anymore for _Composition Definition_ Instantiation `Organization` > `Organization Description`
## Database attached
The above described steps have been performed in this DMX 5.2.1 database: [dmx-db.tar.gz](/uploads/705890f9a08f0aad88e8ddf53378da9b/dmx-db.tar.gz)https://git.dmx.systems/dmx-platform/dmx-platform/-/issues/493Resizable in-map details2023-05-22T16:17:33+02:00Jörg RichterResizable in-map detailsIndividual in-map details should be resizable by the user by the means of handles:
![image](/uploads/7c1f1afa8d1977e9924f62c2d6b0958c/image.png)
If the user has WRITE permission for the current topicmap the size should be persistent.
...Individual in-map details should be resizable by the user by the means of handles:
![image](/uploads/7c1f1afa8d1977e9924f62c2d6b0958c/image.png)
If the user has WRITE permission for the current topicmap the size should be persistent.
See also:
dmx-intern/sprint-planning#182
dmx-intern/sprint-planning#261
@jpn @mukil @irau FYIJörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/484Handle display of missing map types in Topicmap selector2021-07-19T23:33:37+02:00Silke MeyerHandle display of missing map types in Topicmap selectorWhen plugins with custom map types like geomaps or tableviews go missing / are removed from the DMX instance the entries of the according maps stay in the Topicmap selector. Selecting them leads to the infinite spinner. We should find a ...When plugins with custom map types like geomaps or tableviews go missing / are removed from the DMX instance the entries of the according maps stay in the Topicmap selector. Selecting them leads to the infinite spinner. We should find a better way to handle this.
Proposal:
- Display a human readable error message saying which plugin is missing to display the requested view. Users would then know they have to become active or contact admins. Ideally, the message should contain a link to the section in the documentation on how to (re)install a plugin.https://git.dmx.systems/dmx-platform/dmx-platform/-/issues/469z-index problem when there are pinned details2021-04-27T22:05:38+02:00Jörg Richterz-index problem when there are pinned details![image](/uploads/1153050c2b4f3ba982187239d0258853/image.png)![image](/uploads/1153050c2b4f3ba982187239d0258853/image.png)https://git.dmx.systems/dmx-platform/dmx-platform/-/issues/468Flawed auto-pan2021-04-27T22:05:38+02:00Jörg RichterFlawed auto-panAuto-pan is flawed for
- assoc details
- File and Folder details
![image](/uploads/4679453144a92b5a70193fc0c09a92cf/image.png)Auto-pan is flawed for
- assoc details
- File and Folder details
![image](/uploads/4679453144a92b5a70193fc0c09a92cf/image.png)https://git.dmx.systems/dmx-platform/dmx-platform/-/issues/452Core API: improve getChildTopics() experience2021-06-23T16:20:13+02:00Jörg RichterCore API: improve getChildTopics() experienceIn particular the error messages should better differentiate between "type Y has no comp def X" and "missing value for comp def X".
This is a follow-up of a [forum posting](https://forum.dmx.systems/t/optionally-getting-a-string-from-a-...In particular the error messages should better differentiate between "type Y has no comp def X" and "missing value for comp def X".
This is a follow-up of a [forum posting](https://forum.dmx.systems/t/optionally-getting-a-string-from-a-topic/112).
@rsc @mukil FYIJörg RichterJörg Richterhttps://git.dmx.systems/dmx-platform/dmx-platform/-/issues/433Webclient shows error when launching different DMX instance2021-07-19T23:32:47+02:00Ingo RauWebclient shows error when launching different DMX instance## Environment
DMX Version: https://download.dmx.systems/dmx-5.1.zip \
OS: Ubuntu 18.04.5 LTS \
Browser: Firefox 84.0.2 \
## What was observed
@jri for you information. I just downloaded https://download.dmx.systems/dmx-5.1.zip to sta...## Environment
DMX Version: https://download.dmx.systems/dmx-5.1.zip \
OS: Ubuntu 18.04.5 LTS \
Browser: Firefox 84.0.2 \
## What was observed
@jri for you information. I just downloaded https://download.dmx.systems/dmx-5.1.zip to start testing dmx-plugins/dmx-geomaps#4. When I started the shell-script for the first time DMX came up properly, but displayed the following error message:
```
500 Server Error
{ "exception": "java.lang.RuntimeException", "message": "Fetching topic 282 failed", "cause": { "exception": "java.lang.IllegalArgumentException", "message": "ID 282 refers to an Assoc when the caller expects a Topic" } }
```
After closing this message everything worked as expected (Login as admin ... creating Topics ...). I then quit the session via the terminal with CTRL+C and restarted DMX. This time no 500 error came up. I assume it's nothing critical but it may be irritating if happening to non-experienced DMX users after having downloaded DMX.
## Log
```
SCHWERWIEGEND: Request "GET /core/topic/282" failed. Responding with 500 (Internal Server Error). The original exception/error is:
java.lang.RuntimeException: Fetching topic 282 failed
at systems.dmx.core.impl.AccessLayer.getTopic(AccessLayer.java:69)
at systems.dmx.core.impl.CoreServiceImpl.getTopic(CoreServiceImpl.java:84)
at systems.dmx.webservice.WebservicePlugin.getTopic(WebservicePlugin.java:70)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
at com.sun.jersey.server.impl.uri.rules.ResourceObjectRule.accept(ResourceObjectRule.java:100)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1480)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1411)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1360)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1350)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:339)
at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:300)
at org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:93)
at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:50)
at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
at org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:76)
at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:49)
at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:370)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.IllegalArgumentException: ID 282 refers to an Assoc when the caller expects a Topic
at systems.dmx.storage.neo4j.Neo4jStorage.checkNodeType(Neo4jStorage.java:1121)
at systems.dmx.storage.neo4j.Neo4jStorage.fetchTopicNode(Neo4jStorage.java:1092)
at systems.dmx.storage.neo4j.Neo4jStorage.fetchTopic(Neo4jStorage.java:126)
at systems.dmx.core.impl.AccessLayer.getTopic(AccessLayer.java:67)
... 53 more
```https://git.dmx.systems/dmx-platform/dmx-platform/-/issues/428Association of Data Type Composite cannot have children with cardinality Many...2021-03-19T15:40:47+01:00Ingo RauAssociation of Data Type Composite cannot have children with cardinality Many as Identity Attributes@jri While testing #427 I just observed the following. It could be considered an edge case which is only relevant when building complex Custom Associations. Please decide if/how relevant it is for 5.1 release.
## Situation
Consider th...@jri While testing #427 I just observed the following. It could be considered an edge case which is only relevant when building complex Custom Associations. Please decide if/how relevant it is for 5.1 release.
## Situation
Consider the following situation within the tendu sample data on https://sandbox.dmx.systems/systems.dmx.webclient/#/topicmap/10221/assoc/18700
The Custom Association *Climbing Statement* contains the Entity *Rating Statement* as Child property. *Rating Statement* itself has *Route Character* as Children with cardinality *Many*.
To see the *Route Character* in the above mentioned Inmap-Detail of *Climbing Statement* it is necessary to make *Route Character* Identity Attribute.
## What works
Viewing the Inmap Detail
## What doesn't work
Editing the Association. The error message indicates that Properties with Cardinality *Many* cannot be *Identity Attributes*. As soon as you untick the *Identiy Attribute* checkbox for that property editing the Custom Association is possible again. Drawback then: These Child-Properties are not immediately visible anymore in the Assoc Details.https://git.dmx.systems/dmx-platform/dmx-platform/-/issues/425Creating topic with same name in different workspace leads to topic not being...2020-12-24T13:45:59+01:00Malte ReißigCreating topic with same name in different workspace leads to topic not being created/exceptionIssue:
The dmx-webpages module equips every user (on-demand) with its personal "Website". The website is created within the users private workspace by default and has always the same name "My collection of webpages".
Reproduce:
UserA d...Issue:
The dmx-webpages module equips every user (on-demand) with its personal "Website". The website is created within the users private workspace by default and has always the same name "My collection of webpages".
Reproduce:
UserA demands her website. A topic with the name "My collection of webpages" is created and associated with her username topic.
UserB demands her website. A topic with the name "My collection of webpages" can not be created and associated with her username topic because of the following error.
The "Website Name" topic is already associated with the workspace of UserA.
Problem:
Two topics with the same value can not be created in different workspaces.
Stacktrace:
```
Dez 24, 2020 1:34:06 PM systems.dmx.topicmaps.TopicmapsPlugin getTopicmap
INFORMATION: Fetching topicmap 2890, includeChildren=false
Dez 24, 2020 1:34:08 PM systems.dmx.core.util.UniversalExceptionMapper logException
SCHWERWIEGEND: Request "GET /webpages/UserA" failed. Responding with 500 (Internal Server Error). The original exception/error is:
java.lang.RuntimeException: java.lang.RuntimeException: Assigning object 8674 to workspace 4002 failed, object=RelatedTopicModelImpl {
"id": 8674,
"uri": "",
"typeUri": "de.mikromedia.site.name",
"value": "My collection of webpages",
"children": {},
"assoc": {
"id": 8728,
"uri": "",
"typeUri": "dmx.core.composition",
"value": "",
"children": {},
"player1": {
"topicId": 8725,
"roleTypeUri": "dmx.core.parent"
},
"player2": {
"topicId": 8674,
"roleTypeUri": "dmx.core.child"
}
}
}
at de.mikromedia.webpages.WebpagePlugin.createWebsiteTopic(WebpagePlugin.java:721)
at de.mikromedia.webpages.WebpagePlugin.getOrCreateWebsiteTopic(WebpagePlugin.java:671)
at de.mikromedia.webpages.WebpagePlugin.getWebsiteByUsername(WebpagePlugin.java:304)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.sun.jersey.spi.container.JavaMethodInvokerFactory$1.invoke(JavaMethodInvokerFactory.java:60)
at com.sun.jersey.server.impl.model.method.dispatch.AbstractResourceMethodDispatchProvider$TypeOutInvoker._dispatch(AbstractResourceMethodDispatchProvider.java:185)
at com.sun.jersey.server.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:75)
at com.sun.jersey.server.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:302)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
at com.sun.jersey.server.impl.uri.rules.ResourceObjectRule.accept(ResourceObjectRule.java:100)
at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:147)
at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:84)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1480)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1411)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1360)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1350)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.apache.felix.http.base.internal.handler.ServletHandler.doHandle(ServletHandler.java:339)
at org.apache.felix.http.base.internal.handler.ServletHandler.handle(ServletHandler.java:300)
at org.apache.felix.http.base.internal.dispatch.ServletPipeline.handle(ServletPipeline.java:93)
at org.apache.felix.http.base.internal.dispatch.InvocationFilterChain.doFilter(InvocationFilterChain.java:50)
at org.apache.felix.http.base.internal.dispatch.HttpFilterChain.doFilter(HttpFilterChain.java:31)
at org.apache.felix.http.base.internal.dispatch.FilterPipeline.dispatch(FilterPipeline.java:76)
at org.apache.felix.http.base.internal.dispatch.Dispatcher.dispatch(Dispatcher.java:49)
at org.apache.felix.http.base.internal.DispatcherServlet.service(DispatcherServlet.java:67)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:229)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:428)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
at org.eclipse.jetty.server.Server.handle(Server.java:370)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:644)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:235)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:667)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:52)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.lang.RuntimeException: Assigning object 8674 to workspace 4002 failed, object=RelatedTopicModelImpl {
"id": 8674,
"uri": "",
"typeUri": "de.mikromedia.site.name",
"value": "My collection of webpages",
"children": {},
"assoc": {
"id": 8728,
"uri": "",
"typeUri": "dmx.core.composition",
"value": "",
"children": {},
"player1": {
"topicId": 8725,
"roleTypeUri": "dmx.core.parent"
},
"player2": {
"topicId": 8674,
"roleTypeUri": "dmx.core.child"
}
}
}
at systems.dmx.core.impl.PrivilegedAccessImpl.assignToWorkspace(PrivilegedAccessImpl.java:345)
at de.mikromedia.webpages.WebpagePlugin$4.call(WebpagePlugin.java:703)
at de.mikromedia.webpages.WebpagePlugin$4.call(WebpagePlugin.java:689)
at systems.dmx.core.util.ContextTracker.run(ContextTracker.java:20)
at systems.dmx.core.impl.PrivilegedAccessImpl.runInWorkspaceContext(PrivilegedAccessImpl.java:354)
at systems.dmx.core.impl.PrivilegedAccessImpl.runWithoutWorkspaceAssignment(PrivilegedAccessImpl.java:359)
at de.mikromedia.webpages.WebpagePlugin.createWebsiteTopic(WebpagePlugin.java:689)
... 53 more
Caused by: java.lang.RuntimeException: object 8674 is already assigned to workspace 3821
at systems.dmx.core.impl.PrivilegedAccessImpl.assignToWorkspace(PrivilegedAccessImpl.java:341)
... 59 more
```https://git.dmx.systems/dmx-platform/dmx-platform/-/issues/421Support changing a type's URI in DMX core2021-02-02T15:52:12+01:00Silke MeyerSupport changing a type's URI in DMX coreEven if type URIs are not supposed to change there are cases where it makes sense to do so. An example: When you start a plugin that declares types and then later you decide to support a different range of types (e.g. derived from a diff...Even if type URIs are not supposed to change there are cases where it makes sense to do so. An example: When you start a plugin that declares types and then later you decide to support a different range of types (e.g. derived from a different standard) you might want/need to change a type URI.
My concrete example: I started the biblio plugin inspired my item types from the bibtex standard where there is a distinction between "books" (monographs) and collections. Later, we decided to go with the .ris format that just has books while being much more precise in most other parts. So I would like to change my existing typeURI from dmx.biblio.monograph to dmx.biblio.book.https://git.dmx.systems/dmx-platform/dmx-platform/-/issues/418Existing membership assoc block the creation of new associations of other types2020-12-20T20:52:52+01:00Malte ReißigExisting membership assoc block the creation of new associations of other typesE.g. the following condition is met:
User1 (Username) <-- Membership Assoc --> DMX (Workspace)
Status:
Once such a membership assoc is created between a username and a workspace, no other association (regardless of its specific type or...E.g. the following condition is met:
User1 (Username) <-- Membership Assoc --> DMX (Workspace)
Status:
Once such a membership assoc is created between a username and a workspace, no other association (regardless of its specific type or semantics) can currently be created to associate these two players. Currently User1 can by no means associate herself with this workspace using different semantics/any other assoc type.
Subsequently, the creation of any other assoc currently fails due to a `duplicateCheck` and the RuntimeException `Duplicate: such an association exists already`.
Example:
User1 can by no means subscribe to updates from the workspace using the DMX Notifications plugin.
A subscription here is modeled using the "Notification Subscription" edge between Username and Workspace. This is courtesy of the "DMX Notifications" plugin.
Cause:
The error is caused due to the re-typing of the workspace module. The workspace module suggests users IF they create an assoc between a Username and a Workspace, this will always be one of type "Membership" while, in fact, it was not even my intent to create a 2nd "Membership" assoc. As a result, users are powerless here. The user can't decide which assoc type is the desired one. The request simply fails with an Exception.https://git.dmx.systems/dmx-platform/dmx-platform/-/issues/411Uninstalling tableview plugins leads to webclient not initializing if tablevi...2020-11-21T14:11:43+01:00Malte ReißigUninstalling tableview plugins leads to webclient not initializing if tableviews topics existSteps to reproduce:
- Install dmx-tableview
- Start DMX Webclient + Create Tableviews
- Uninstall dmx-tableview
- Reload DMX Webclient
Tested with latest DMX 5.1-SNAPSHOT (today).
After tableview removal the webcient crashes during in...Steps to reproduce:
- Install dmx-tableview
- Start DMX Webclient + Create Tableviews
- Uninstall dmx-tableview
- Reload DMX Webclient
Tested with latest DMX 5.1-SNAPSHOT (today).
After tableview removal the webcient crashes during initialization with the following error:
```
0c7c98530d4c45e1ddaa.main.js:29 Rendering topicmap 3789 failed Error: unknown topicmap type 'dmx.tableview'
at 0c7c98530d4c45e1ddaa.main.js:29
at 0c7c98530d4c45e1ddaa.main.js:29
at new Promise (<anonymous>)
at h (0c7c98530d4c45e1ddaa.main.js:29)
at u.showTopicmap (0c7c98530d4c45e1ddaa.main.js:29)
at Array.<anonymous> (0c7c98530d4c45e1ddaa.main.js:7)
at u.dispatch (0c7c98530d4c45e1ddaa.main.js:13)
at dispatch (0c7c98530d4c45e1ddaa.main.js:7)
at 0c7c98530d4c45e1ddaa.main.js:29
```
This may be not limited to tableview but might also the case after the removal of any plugin providing a custom maptype extension and maps of that maptype exist.
Proposed solution:
The webclient should be more robust towards that case and boot-up nonetheless.https://git.dmx.systems/dmx-platform/dmx-platform/-/issues/388Client-sync does not update topicmaps when not selected2020-07-16T16:09:27+02:00Jörg RichterClient-sync does not update topicmaps when not selectedTry this:
1. With 2 browsers open the same map. Login at least in browser A.
When you manipulate the topicmap in browser A (e.g. move/hide a topic) you'll see browser B syncs properly.
2. In browser B change to another topicmap/workspa...Try this:
1. With 2 browsers open the same map. Login at least in browser A.
When you manipulate the topicmap in browser A (e.g. move/hide a topic) you'll see browser B syncs properly.
2. In browser B change to another topicmap/workspace
3. In browser A manipulate the topicmap again (of cause no syncing is perceivable now)
4. In browser B switch back to original topicmap.
=> The manipulations done in Browser A while B was absent are *not* synched. Browser B still shows the old state. This is a bug.
@jpn @mukil FYIJörg RichterJörg Richter