Email template module throwing error Ids should not be null

3
After a migration from Mx4 to Mx6 we also updated the E-mail module with templates. I now have regurlaly the stack trace below in my log. I wonder how this error can be thrown. As far as I can tell from the code this should never be happening. What am I overlooking? Regards, Ronald [EDIT] It seems that after the migrations the model reflection got out of sync. Refreshing the model reflection solved the problem for some templates but caused the above error for other templates. For these templates the tokens looked good bur produced the above error, deleting and recreating them solved the issue.   Mar 17 12:05:38.435 - ERROR - TokenReplacer: (1/78) java.lang.IllegalArgumentException: Ids should not be null Mar 17 12:05:38.435 - ERROR - TokenReplacer: (2/78) #011at com.mendix.core.component.InternalCore.retrieveId(InternalCore.java:932) Mar 17 12:05:38.435 - ERROR - TokenReplacer: (3/78) #011at com.mendix.core.Core.retrieveId(Core.java:622) Mar 17 12:05:38.435 - ERROR - TokenReplacer: (4/78) #011at mxmodelreflection.TokenReplacer.replaceToken(TokenReplacer.java:104) Mar 17 12:05:38.435 - ERROR - TokenReplacer: (5/78) #011at mxmodelreflection.TokenReplacer.replaceTokens(TokenReplacer.java:57) Mar 17 12:05:38.435 - ERROR - TokenReplacer: (6/78) #011at emailtemplate.actions.ReplaceEmailTemplateTokens.executeAction(ReplaceEmailTemplateTokens.java:44) Mar 17 12:05:38.436 - ERROR - TokenReplacer: (7/78) #011at emailtemplate.actions.ReplaceEmailTemplateTokens.executeAction(ReplaceEmailTemplateTokens.java:17) Mar 17 12:05:38.436 - ERROR - TokenReplacer: (8/78) #011at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:49) Mar 17 12:05:38.436 - ERROR - TokenReplacer: (9/78) #011at com.mendix.core.actionmanagement.CoreAction.doCall(CoreAction.java:260) Mar 17 12:05:38.436 - ERROR - TokenReplacer: (10/78) #011at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:248) Mar 17 12:05:38.436 - ERROR - TokenReplacer: (11/78) #011at com.mendix.core.actionmanagement.ActionManager$1.execute(ActionManager.java:168) Mar 17 12:05:38.436 - ERROR - TokenReplacer: (12/78) #011at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:36) Mar 17 12:05:38.436 - ERROR - TokenReplacer: (13/78) #011at com.mendix.core.actionmanagement.ActionManager.executeSync(ActionManager.java:172) Mar 17 12:05:38.436 - ERROR - TokenReplacer: (14/78) #011at com.mendix.core.component.InternalCore.execute(InternalCore.java:390) Mar 17 12:05:38.436 - ERROR - TokenReplacer: (15/78) #011at com.mendix.modules.microflowengine.actions.actioncall.JavaAction.execute(JavaAction.scala:52) Mar 17 12:05:38.436 - ERROR - TokenReplacer: (16/78) #011at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.java:47) Mar 17 12:05:38.436 - ERROR - TokenReplacer: (17/78) #011at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.java:192) Mar 17 12:05:38.436 - ERROR - TokenReplacer: (18/78) #011at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.java:149) Mar 17 12:05:38.436 - ERROR - TokenReplacer: (19/78) #011at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:49) Mar 17 12:05:38.436 - ERROR - TokenReplacer: (20/78) #011at com.mendix.core.actionmanagement.CoreAction.doCall(CoreAction.java:260) Mar 17 12:05:38.436 - ERROR - TokenReplacer: (21/78) #011at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:248) Mar 17 12:05:38.436 - ERROR - TokenReplacer: (22/78) #011at com.mendix.core.actionmanagement.ActionManager$1.execute(ActionManager.java:168) Mar 17 12:05:38.436 - ERROR - TokenReplacer: (23/78) #011at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:36) Mar 17 12:05:38.436 - ERROR - TokenReplacer: (24/78) #011at com.mendix.core.actionmanagement.ActionManager.executeSync(ActionManager.java:172) Mar 17 12:05:38.437 - ERROR - TokenReplacer: (25/78) #011at com.mendix.core.component.InternalCore.executeSync(InternalCore.java:472) Mar 17 12:05:38.437 - ERROR - TokenReplacer: (26/78) #011at com.mendix.modules.microflowengine.actions.SubMicroflowAction.execute(SubMicroflowAction.scala:43) Mar 17 12:05:38.437 - ERROR - TokenReplacer: (27/78) #011at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.java:47) Mar 17 12:05:38.437 - ERROR - TokenReplacer: (28/78) #011at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.java:192) Mar 17 12:05:38.437 - ERROR - TokenReplacer: (29/78) #011at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.java:149) Mar 17 12:05:38.437 - ERROR - TokenReplacer: (30/78) #011at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:49) Mar 17 12:05:38.437 - ERROR - TokenReplacer: (31/78) #011at com.mendix.core.actionmanagement.CoreAction.doCall(CoreAction.java:260) Mar 17 12:05:38.437 - ERROR - TokenReplacer: (32/78) #011at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:248) Mar 17 12:05:38.437 - ERROR - TokenReplacer: (33/78) #011at com.mendix.core.actionmanagement.ActionManager$1.execute(ActionManager.java:168) Mar 17 12:05:38.437 - ERROR - TokenReplacer: (34/78) #011at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:36) Mar 17 12:05:38.437 - ERROR - TokenReplacer: (35/78) #011at com.mendix.core.actionmanagement.ActionManager.executeSync(ActionManager.java:172) Mar 17 12:05:38.437 - ERROR - TokenReplacer: (36/78) #011at com.mendix.core.component.InternalCore.executeSync(InternalCore.java:472) Mar 17 12:05:38.437 - ERROR - TokenReplacer: (37/78) #011at com.mendix.modules.microflowengine.actions.SubMicroflowAction.execute(SubMicroflowAction.scala:43) Mar 17 12:05:38.437 - ERROR - TokenReplacer: (38/78) #011at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.java:47) Mar 17 12:05:38.437 - ERROR - TokenReplacer: (39/78) #011at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.java:192) Mar 17 12:05:38.437 - ERROR - TokenReplacer: (40/78) #011at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.java:149) Mar 17 12:05:38.437 - ERROR - TokenReplacer: (41/78) #011at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:49) Mar 17 12:05:38.438 - ERROR - TokenReplacer: (42/78) #011at com.mendix.core.actionmanagement.CoreAction.doCall(CoreAction.java:260) Mar 17 12:05:38.438 - ERROR - TokenReplacer: (43/78) #011at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:248) Mar 17 12:05:38.438 - ERROR - TokenReplacer: (44/78) #011at com.mendix.core.actionmanagement.ActionManager$1.execute(ActionManager.java:168) Mar 17 12:05:38.438 - ERROR - TokenReplacer: (45/78) #011at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:36) Mar 17 12:05:38.438 - ERROR - TokenReplacer: (46/78) #011at com.mendix.core.actionmanagement.ActionManager.executeSync(ActionManager.java:172) Mar 17 12:05:38.438 - ERROR - TokenReplacer: (47/78) #011at com.mendix.core.component.InternalCore.executeSync(InternalCore.java:472) Mar 17 12:05:38.438 - ERROR - TokenReplacer: (48/78) #011at com.mendix.modules.microflowengine.actions.SubMicroflowAction.execute(SubMicroflowAction.scala:43) Mar 17 12:05:38.438 - ERROR - TokenReplacer: (49/78) #011at com.mendix.modules.microflowengine.microflow.impl.MicroflowObject.execute(MicroflowObject.java:47) Mar 17 12:05:38.438 - ERROR - TokenReplacer: (50/78) #011at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAfterBreakingIfNecessary(MicroflowImpl.java:192) Mar 17 12:05:38.438 - ERROR - TokenReplacer: (51/78) #011at com.mendix.modules.microflowengine.microflow.impl.MicroflowImpl.executeAction(MicroflowImpl.java:149) Mar 17 12:05:38.438 - ERROR - TokenReplacer: (52/78) #011at com.mendix.systemwideinterfaces.core.UserAction.execute(UserAction.java:49) Mar 17 12:05:38.438 - ERROR - TokenReplacer: (53/78) #011at com.mendix.core.actionmanagement.CoreAction.doCall(CoreAction.java:260) Mar 17 12:05:38.438 - ERROR - TokenReplacer: (54/78) #011at com.mendix.core.actionmanagement.CoreAction.call(CoreAction.java:248) Mar 17 12:05:38.438 - ERROR - TokenReplacer: (55/78) #011at com.mendix.core.actionmanagement.ActionManager$1.execute(ActionManager.java:168) Mar 17 12:05:38.438 - ERROR - TokenReplacer: (56/78) #011at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:36) Mar 17 12:05:38.438 - ERROR - TokenReplacer: (57/78) #011at com.mendix.core.actionmanagement.ActionManager.executeSync(ActionManager.java:172) Mar 17 12:05:38.438 - ERROR - TokenReplacer: (58/78) #011at com.mendix.core.component.InternalCore.execute(InternalCore.java:390) Mar 17 12:05:38.438 - ERROR - TokenReplacer: (59/78) #011at com.mendix.webui.actions.client.ExecuteAction.execute(ExecuteAction.java:144) Mar 17 12:05:38.438 - ERROR - TokenReplacer: (60/78) #011at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply$mcV$sp(ClientRequestHandler.scala:311) Mar 17 12:05:38.439 - ERROR - TokenReplacer: (61/78) #011at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply(ClientRequestHandler.scala:301) Mar 17 12:05:38.439 - ERROR - TokenReplacer: (62/78) #011at com.mendix.webui.requesthandling.ClientRequestHandler$$anonfun$handleRequest$1.apply(ClientRequestHandler.scala:301) Mar 17 12:05:38.439 - ERROR - TokenReplacer: (63/78) #011at com.mendix.core.session.Worker$$anonfun$receive$3$$anonfun$2$$anon$1.execute(ActionDispatching.scala:143) Mar 17 12:05:38.439 - ERROR - TokenReplacer: (64/78) #011at com.mendix.util.classloading.Runner.doRunUsingClassLoaderOf(Runner.java:36) Mar 17 12:05:38.439 - ERROR - TokenReplacer: (65/78) #011at com.mendix.core.session.Worker$$anonfun$receive$3$$anonfun$2.apply(ActionDispatching.scala:145) Mar 17 12:05:38.439 - ERROR - TokenReplacer: (66/78) #011at scala.util.Try$.apply(Try.scala:192) Mar 17 12:05:38.439 - ERROR - TokenReplacer: (67/78) #011at com.mendix.core.session.Worker$$anonfun$receive$3.applyOrElse(ActionDispatching.scala:139) Mar 17 12:05:38.439 - ERROR - TokenReplacer: (68/78) #011at akka.actor.Actor$class.aroundReceive(Actor.scala:465) Mar 17 12:05:38.439 - ERROR - TokenReplacer: (69/78) #011at com.mendix.core.session.Worker.aroundReceive(ActionDispatching.scala:135) Mar 17 12:05:38.439 - ERROR - TokenReplacer: (70/78) #011at akka.actor.ActorCell.receiveMessage(ActorCell.scala:516) Mar 17 12:05:38.439 - ERROR - TokenReplacer: (71/78) #011at akka.actor.ActorCell.invoke(ActorCell.scala:487) Mar 17 12:05:38.439 - ERROR - TokenReplacer: (72/78) #011at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:238) Mar 17 12:05:38.439 - ERROR - TokenReplacer: (73/78) #011at akka.dispatch.Mailbox.run(Mailbox.scala:220) Mar 17 12:05:38.439 - ERROR - TokenReplacer: (74/78) #011at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:393) Mar 17 12:05:38.439 - ERROR - TokenReplacer: (75/78) #011at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) Mar 17 12:05:38.439 - ERROR - TokenReplacer: (76/78) #011at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339) Mar 17 12:05:38.439 - ERROR - TokenReplacer: (77/78) #011at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) Mar 17 12:05:38.439 - ERROR - TokenReplacer: (78/78) #011at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)  
asked
2 answers
1

Looks to me like it happens here in TokenReplacer.java, it retrieves several objects like this:

IMendixObject member== = Core.retrieveId(context, (IMendixIdentifier) token.getValue(context, Token.MemberNames.Token_MxObjectMember.toString()));

 

Are all of the target members in all of the tokens filled?
And did you already try running model reflection again?

answered
1

Hi Ronald,

I know it a little late in the day. But I faced the same issue with my project. Stumbled upon this question for answers but didn't find any. I found out the solution.

Go to your EmailTemplates and at the end you will find Token List. Open each one of the Tokens and check if an attribute is selected. This error occurs when one or more Tokens have not selected attributes. Hope this helps. 

May be someone else will find this useful. 

Thanks,

Sharad R K

answered