Hi Oliver,

there is no guarantee about the order of instantiation for MetadataAdapter and DataProvider classes, so you cannot leverage on that in order to setup this kind of communication between instances, as in your example.

The only order that can be assured is relative to the invocation of init methods, which should be used to place all the initialization logic for both classes.
By using the following settting:

as you did in your adapters.xml configuration file, you ensure that the invocation of 'init' method for the MetadataAdapter ends before the 'init of the DataAdapter is called (and, in general, before any 'init' of all Data Apdaters provided in the same Adapter Set). It means that you should not access the static 'instance' method of your 'MetadataAdapter' class in the constructor of 'DataAdapter', but rather in its 'init' method, as follows:


Obviously, you get back to the similar problem by configuring the parameter with 'N', because in that case the MetadataAdapter and DataApater instances get intialized in parallel, so the final behavior is unpredictable. Anyway, default value is 'Y'.

Let me know if this explanation is enough for you.

Thanks and Regards,
Gianluca