No, do not connect a separate delegator. You only want a separate
delegator when you need a different BEHAVIOR, not a different DATA SOURCE.
Adrian Crum
Sandglass Software
www.sandglass-software.com
On 6/16/2015 7:17 PM, Christian Carlow wrote:
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