Monday, November 3, 2014

MdsMetadataResourceProvider Error in ADF 11.1.1.7

If you have migrated ADF application to ADF 11.1.1.7 version recently, you may see error in the log related to the internal MetadataResourceXmlImpl class usage. Runtime behaviour will not be affected, but there could be many redundant error messages in the log, like this one:


Error UNEXPECTED_CLIENT_OBJECT_TYPE found oracle.adf.controller.internal.metadata.xml.MetadataResourceXmlImpl, points to the ADF internal class usage, instead of public. You must look through the source code and you should find illegal internal imports for MetadataService and TaskFlowDefinition classes. Typically ADF developer would use such classes in the previous ADF versions to check if specific ADF TF exists:


In ADF 11.1.1.7 you can use public classes for MetadataService and TaskFlowDefinition, instead of private. To fix the error, you only need to change class import:


Here you can download sample application with correct API usage - ADFMetadataInternalApp.zip.

4 comments:

Araceli said...

Hi Andrejus,
We are migrating from 11.1.1.5 to 11.1.1.7 and I have a problem with the SelectOneChoice with dependency of more than one component (one SelectOneChoice depends of two different SelectOneChoices for example), is it a bug on this version? Because in version 11.1.1.5 it works perfectly.
Thanks for your help.

Andrej Baranovskij said...

It depends how it is implemented. Is it handled in ADF BC or ADF UI level exclusively?

Andrejus

Araceli said...

I'm using EJB 3, the main problem is when I select one option of the parent selectOneChoice, the dependent child selectOneChoice get empty and I get the message in the console: <__getIndex> The index 0 of the submitted value for selectOne is out of bounds. It should be between 0 and -1.

I tried implementing the invokeAction to refresh the iterator as it was in the version 11.1.1.5 but it doesn't work, the child select call a method and pass as parameter the id of the select parent, that method is called correctly but the child select is not filled. :(.
Thanks, you are so kind to help a lost ADF programmer.

Andrej Baranovskij said...

I would suggest to use ADF BC, instead of EJB for ADF development.

Andrejus