[MGNLUI-397] Selecting a prefixed item results in malfunctioning Created: 11/Dec/12  Updated: 27/Jun/13  Resolved: 27/Jun/13

Status: Closed
Project: Magnolia UI
Component/s: content app
Affects Version/s: 5.0
Fix Version/s: 5.0

Type: Bug Priority: Major
Reporter: Federico Grilli Assignee: Unassigned
Resolution: Outdated Votes: 0
Labels: frontend
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
dependency
depends upon MGNLUI-322 Location fragment should be escaped Closed
duplicate
is duplicated by MGNLUI-481 Enabling and disabling of actions bre... Closed
relation
is related to MGNLUI-197 Workbench with includeProperties shou... Closed
is related to MGNLUI-394 Metadata properties (mgnl:*) are disp... Closed
Template:
Acceptance criteria:
Empty
Task DoD:
[ ]* Doc/release notes changes? Comment present?
[ ]* Downstream builds green?
[ ]* Solution information and context easily available?
[ ]* Tests
[ ]* FixVersion filled and not yet released
[ ]  Architecture Decision Record (ADR)
Bug DoR:
[ ]* Steps to reproduce, expected, and actual results filled
[ ]* Affected version filled
Date of First Response:

 Description   

To reproduce it

  • Open config app
  • Expand server node and select mgnl:created property (okay, it should not be there in the first place, anyways...)
  • A WARN as the one pasted below will show up in the logs
  • From now on, the app no longer reacts to events, i.e. URI fragment or action availability in action bar do not change if a different item is selected
  • Closing the app sometimes results in a Vaadin's out-of-synch error
2012-12-11 14:24:28,702 WARN  info.magnolia.ui.framework.event.SimpleEventBus   : Exception caught when dispatching event: No view type could be found for [created]
java.lang.IllegalArgumentException: No view type could be found for [created]
	at info.magnolia.ui.admincentral.content.view.ContentView$ViewType.fromString(ContentView.java:83)
	at info.magnolia.ui.admincentral.app.content.location.ContentLocation.extractView(ContentLocation.java:101)
	at info.magnolia.ui.admincentral.app.content.location.ContentLocation.<init>(ContentLocation.java:55)
	at info.magnolia.ui.admincentral.app.content.location.ContentLocation.wrap(ContentLocation.java:131)
	at info.magnolia.ui.admincentral.app.content.AbstractContentSubApp.getCurrentLocation(AbstractContentSubApp.java:171)
	at info.magnolia.ui.admincentral.app.content.AbstractContentSubApp$1.onItemSelected(AbstractContentSubApp.java:188)
	at info.magnolia.ui.admincentral.event.ItemSelectedEvent.dispatch(ItemSelectedEvent.java:78)
	at info.magnolia.ui.admincentral.event.ItemSelectedEvent.dispatch(ItemSelectedEvent.java:1)
	at info.magnolia.ui.framework.event.SimpleEventBus.fireEvent(SimpleEventBus.java:76)
	at info.magnolia.ui.admincentral.content.view.ContentPresenter.onItemSelection(ContentPresenter.java:132)
	at info.magnolia.ui.admincentral.tree.view.TreeViewImpl.presenterOnItemSelection(TreeViewImpl.java:258)
	at info.magnolia.ui.admincentral.tree.view.TreeViewImpl.access$4(TreeViewImpl.java:256)
	at info.magnolia.ui.admincentral.tree.view.TreeViewImpl$2.valueChange(TreeViewImpl.java:132)
	at sun.reflect.GeneratedMethodAccessor177.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at com.vaadin.event.ListenerMethod.receiveEvent(ListenerMethod.java:510)
	at com.vaadin.event.EventRouter.fireEvent(EventRouter.java:164)
	at com.vaadin.ui.AbstractComponent.fireEvent(AbstractComponent.java:1219)
	at com.vaadin.ui.AbstractField.fireValueChange(AbstractField.java:897)
	at com.vaadin.ui.AbstractField.setValue(AbstractField.java:529)
	at com.vaadin.ui.AbstractSelect.setValue(AbstractSelect.java:670)
	at com.vaadin.ui.Table.handleSelectedItems(Table.java:2391)
	at com.vaadin.ui.Table.changeVariables(Table.java:2440)
	at com.vaadin.ui.TreeTable.changeVariables(TreeTable.java:390)
	at info.magnolia.ui.vaadin.grid.MagnoliaTreeTable.changeVariables(MagnoliaTreeTable.java:61)
	at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.changeVariables(AbstractCommunicationManager.java:1460)
	at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariableBurst(AbstractCommunicationManager.java:1404)
	at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.handleVariables(AbstractCommunicationManager.java:1329)
	at com.vaadin.terminal.gwt.server.AbstractCommunicationManager.doHandleUidlRequest(AbstractCommunicationManager.java:761)
	at com.vaadin.terminal.gwt.server.CommunicationManager.handleUidlRequest(CommunicationManager.java:323)
	...


 Comments   
Comment by Espen Jervidalo [ 13/Dec/12 ]

This is solved by fixing the related issue. YOu should not have node names containing the ":". That is used to separate parameters in the fragment.. If it should be used, we must escape the fragments. Why everything goes bad afterwards is probably worth investigating.

Comment by Federico Grilli [ 13/Dec/12 ]

While the colon punctuation mark is not allowed in node names (http://www.day.com/specs/jcr/2.0/3_Repository_Model.html), if I get it right, it is allowed in property names as in this case. True, we do not allow creating such properties via our UI (n 4.5 at least) but I guess that's not completely correct.

Comment by Mikaël Geljić [ 17/Dec/12 ]

Not correct for 5.0 at least, that's not prevented in inplace editing. Whether it should be is a good question, the same would need to be addressed as well for semi-colons (and any other potential metacharacter).

Anyway, in case it should, I link to that already existing ticket (MGNLUI-322) and will relate as well to MGNLUI-197 for filtering-out JCR properties in config-app.

Generated at Mon Feb 12 08:36:29 CET 2024 using Jira 9.4.2#940002-sha1:46d1a51de284217efdcb32434eab47a99af2938b.