On click event of calendar widget gives an error

1
Hi, We are using the latest version of the calendar widget. The events are shown as expected, but when clicking on an event nothing happens. We have an on click microflow, but this is not kicked off (we tried it with an breakpoint). In the console we get the following error:   com.mendix.core.CoreRuntimeException: com.mendix.systemwideinterfaces.MendixRuntimeException: com.mendix.core.CoreRuntimeException: Exception occurred in action '{"changes":"{AllDay=null, Start=1515974400000}","type":"ChangeAction"}', all database changes executed by this action were rolled back     at com.mendix.basis.actionmanagement.ActionManager.executeSync(ActionManager.java:195) Caused by: com.mendix.systemwideinterfaces.MendixRuntimeException: com.mendix.core.CoreRuntimeException: Exception occurred in action '{"changes":"{AllDay=null, Start=1515974400000}","type":"ChangeAction"}', all database changes executed by this action were rolled back     at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:36) Caused by: com.mendix.core.CoreRuntimeException: Exception occurred in action '{"changes":"{AllDay=null, Start=1515974400000}","type":"ChangeAction"}', all database changes executed by this action were rolled back     at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.processErrorState(CoreActionHandlerImpl.scala:157) Caused by: java.lang.IllegalArgumentException: Boolean member can not be set to null     at com.mendix.basis.objectmanagement.member.MendixBooleanImpl.setValue(MendixBooleanImpl.java:60)     at com.mendix.basis.objectmanagement.member.MendixBooleanImpl.setValue(MendixBooleanImpl.java:16)     at com.mendix.basis.objectmanagement.MendixObjectMemberImpl.parseValueFromString(MendixObjectMemberImpl.java:258)     at com.mendix.basis.action.user.Changer.setMemberValue(Changer.scala:61)     at com.mendix.basis.action.user.Changer.changeMember(Changer.scala:31)     at com.mendix.basis.action.user.Changer.changeMember$(Changer.scala:26)     at com.mendix.basis.action.user.ChangeAction.changeMember(ChangeAction.scala:13)     at com.mendix.basis.action.user.ChangeAction.$anonfun$executeAction$2(ChangeAction.scala:36)     at com.mendix.basis.action.user.ChangeAction.$anonfun$executeAction$2$adapted(ChangeAction.scala:35)     at scala.collection.Iterator.foreach(Iterator.scala:929)     at scala.collection.Iterator.foreach$(Iterator.scala:929)     at scala.collection.AbstractIterator.foreach(Iterator.scala:1417)     at scala.collection.IterableLike.foreach(IterableLike.scala:71)     at scala.collection.IterableLike.foreach$(IterableLike.scala:70)     at scala.collection.AbstractIterable.foreach(Iterable.scala:54)     at com.mendix.basis.action.user.ChangeAction.executeAction(ChangeAction.scala:35)     at com.mendix.basis.action.user.ChangeAction.executeAction(ChangeAction.scala:13)     at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:50)     at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.doCall(CoreActionHandlerImpl.scala:76)     at com.mendix.basis.actionmanagement.CoreActionHandlerImpl.call(CoreActionHandlerImpl.scala:55)     at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:55)     at com.mendix.basis.actionmanagement.ActionManager$1.execute(ActionManager.java:186)     at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32)     at com.mendix.basis.actionmanagement.ActionManager.executeSync(ActionManager.java:191)     at com.mendix.basis.component.InternalCore.change(InternalCore.java:148)     at com.mendix.webui.requesthandling.RequestHandlingUtil$.$anonfun$validateChanges$4(RequestHandlingUtil.scala:56)     at scala.runtime.java8.JFunction0$mcZ$sp.apply(JFunction0$mcZ$sp.java:12)     at scala.util.Try$.apply(Try.scala:209)     at com.mendix.webui.requesthandling.RequestHandlingUtil$.$anonfun$validateChanges$2(RequestHandlingUtil.scala:56)     at scala.collection.TraversableLike.$anonfun$flatMap$1(TraversableLike.scala:241)     at scala.collection.mutable.ResizableArray.foreach(ResizableArray.scala:59)     at scala.collection.mutable.ResizableArray.foreach$(ResizableArray.scala:52)     at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48)     at scala.collection.TraversableLike.flatMap(TraversableLike.scala:241)     at scala.collection.TraversableLike.flatMap$(TraversableLike.scala:238)     at scala.collection.AbstractTraversable.flatMap(Traversable.scala:104)     at com.mendix.webui.requesthandling.RequestHandlingUtil$.validateChanges(RequestHandlingUtil.scala:47)     at com.mendix.webui.requesthandling.ClientRequestHandler.$anonfun$handleRequest$2(ClientRequestHandler.scala:321)     at scala.runtime.java8.JFunction0$mcV$sp.apply(JFunction0$mcV$sp.java:12)     at com.mendix.basis.actionmanagement.IMonitoredAction$$anon$1.execute(IMonitoredAction.scala:47)     at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32)     at com.mendix.basis.actionmanagement.IMonitoredAction.monitor(IMonitoredAction.scala:49)     at com.mendix.basis.actionmanagement.IMonitoredAction.monitor$(IMonitoredAction.scala:25)     at com.mendix.webui.requesthandling.ClientRequestHandler$ClientMonitoredAction.monitor(ClientRequestHandler.scala:431)     at com.mendix.webui.requesthandling.ClientRequestHandler.handleRequest(ClientRequestHandler.scala:313)     at com.mendix.webui.requesthandling.ClientRequestHandler.handleActionWithSessionRequired(ClientRequestHandler.scala:251)     at com.mendix.webui.requesthandling.ClientRequestHandler.handleAction(ClientRequestHandler.scala:220)     at com.mendix.webui.requesthandling.ClientRequestHandler.liftedTree1$1(ClientRequestHandler.scala:104)     at com.mendix.webui.requesthandling.ClientRequestHandler.processRequest(ClientRequestHandler.scala:96)     at com.mendix.externalinterface.connector.RequestHandler.doProcessRequest(RequestHandler.java:40)     at com.mendix.external.connector.MxRuntimeConnector$1.execute(MxRuntimeConnector.java:70)     at com.mendix.external.connector.MxRuntimeConnector$1.execute(MxRuntimeConnector.java:67)     at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:32)     at com.mendix.external.connector.MxRuntimeConnector.processRequest(MxRuntimeConnector.java:73)     at com.mendix.basis.impl.MxRuntimeImpl.processRequest(MxRuntimeImpl.java:877)     at com.mendix.m2ee.appcontainer.server.handler.RuntimeHandler.service(RuntimeHandler.java:42)     at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)     at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:841)     at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535)     at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)     at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)     at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188)     at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253)     at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168)     at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)     at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)     at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166)     at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155)     at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)     at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)     at org.eclipse.jetty.server.Server.handle(Server.java:561)     at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:334)     at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)     at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279)     at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:104)     at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124)     at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:247)     at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.produce(EatWhatYouKill.java:140)     at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)     at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:243)     at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:679)     at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:597)     at java.lang.Thread.run(Thread.java:748)   So, apperantly it tries to set the allDay boolean to null before starting the microflow. Obviously, a boolean can not be null. Before we got this error, we got an error that said there was no write access to the allDay boolean (and the start and end date). We don't want the write access, but we did it, just to go further. Then we got this error.   Does anyone know, why an user should have write access to the allDay boolean and start and end date? And how is it possible that a boolean is set to null?   In another project we have the write access (altough we don't want to), but then the calendar widget is not setting the allDay boolean to null. This is a project in Mendix 6.10.3. Can Mendix version have something to do with this? And how can we make this work in a Mendix 7.10.0 app?   Thanks for your answers!
asked
3 answers
0

I think I just experienced something similar this week. I had a microflow creating an object and I was setting its values from a different object, and then opening a page. When I triggered a second microflow from the page I was displaying, all but one of the attributes were set in the object I had just created. Even though when I debugged microflow 1, and saw the value of this attribute being set, when I triggered my second microflow the attribute would be empty. It wasn't until I gave read access to this attribute for the value to be set. 

 

I'm not sure why this happened, my understanding of access rules always have been that they need to be set only if a user is reading or writing to an object on a page. 

answered
0
  • Does anyone know, why an user should have write access to the allDay boolean and start and end date?

Looks like the widget is setting these values. That's only possible if the user has write access.

  • And how is it possible that a boolean is set to null?

If you pass in an object attribute like $object/boolean, this will be resolved to null if $object is null. Maybe that's the issue.

answered
0

I had the same issue when upgrading my app from 6>7. Downloading the latest version of the calendar widget then right clicking each instance of the widget and selecting update has resolved the issue.

answered