https://cwiki.apache.org/confluence/display/OFBIZ/Load+Legacy+Data+by +Connecting+to+the+Legacy+Database suggests creating a separate delegator to contain the external datasource <group-map> elements
But, https://cwiki.apache.org/confluence/display/OFBIZ/FAQ+-+Tips +-+Tricks+-+Cookbook+-+HowTo says to use the default delegator Creating a separate delegator causes startup to crash due to the default delegator not being able to find a helperName in getModelFieldTypeReader() so getModelFieldType() is performed on null: return this.getModelFieldTypeReader(entity).getModelFieldType(type); (GenericDelegator.java:561) If the <group-map> is redundantly specified in the default delegator then startup succeeds. Is this a bug? Shouldn't <group-map> for the external entity only have to be specified for the delegator that will use it? The calling code org.ofbiz.entity.model.ModelEntityChecker.checkEntities(ModelEntityChecker.java:111) has lines above it accounting for a helperName but just adds to warningList. Adding a continue statement in place of warningList.add() allows startup to succeed but errors are thrown related to the missing helperName once the external entities are referenced. Am I missing something when it comes to creating new delegators? To be honest I don't really know why I would need a separate one from default? Can someone explain? Below is the stacktrace: Caused by: java.lang.NullPointerException at org.ofbiz.entity.GenericDelegator.getEntityFieldType(GenericDelegator.java:561) ~[ofbiz-entity.jar:?] at org.ofbiz.entity.model.ModelEntityChecker.checkEntities(ModelEntityChecker.java:111) ~[ofbiz-entity.jar:?] at org.ofbiz.entity.GenericDelegator.<init>(GenericDelegator.java:224) ~[ofbiz-entity.jar:?] at org.ofbiz.entity.DelegatorFactoryImpl.getInstance(DelegatorFactoryImpl.java:33) ~[ofbiz-entity.jar:?] at org.ofbiz.entity.DelegatorFactoryImpl.getInstance(DelegatorFactoryImpl.java:25) ~[ofbiz-entity.jar:?] at org.ofbiz.base.util.UtilObject.getObjectFromFactory(UtilObject.java:200) ~[ofbiz-base.jar:?] at org.ofbiz.entity.DelegatorFactory $DelegatorConfigurable.call(DelegatorFactory.java:83) ~[ofbiz-entity.jar:?] at org.ofbiz.entity.DelegatorFactory $DelegatorConfigurable.call(DelegatorFactory.java:74) ~[ofbiz-entity.jar:?] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_45] at java.util.concurrent.Executors $RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_45] at java.util.concurrent.FutureTask.run(FutureTask.java:266) ~[?:1.8.0_45] at java.util.concurrent.ScheduledThreadPoolExecutor $ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) ~[?:1.8.0_45] at java.util.concurrent.ScheduledThreadPoolExecutor $ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) ~[?:1.8.0_45] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) ~[?:1.8.0_45] at java.util.concurrent.ThreadPoolExecutor $Worker.run(ThreadPoolExecutor.java:617) ~[?:1.8.0_45] at java.lang.Thread.run(Thread.java:745) ~[?:1.8.0_45] java.lang.NullPointerException