Daily Archives: October 5, 2010

oracle.mds.exception.MDSRuntimeException: MDS-00168


Target URL -- http://127.0.0.1:7101/[Application_Name]-[Project_Name]-context-root/faces/[page_name].jspx
<22-03-2010 09:57:51 AM CLT>    <[ServletContext@27112686[app:[Application_Name] module:[Application_Name]-[Project_Name]-context-root path:/[Application_Name]-[Project_Name]-context-root spec-version:2.5]] Servlet failed with Exception
oracle.mds.exception.MDSRuntimeException: MDS-00168: MDS object oracle.mds.core.MDSInstance@160bf69 is being used after it or its MDSInstance or PManager has been released.
at oracle.mds.core.MDSInstance.checkNotReleased(MDSInstance.java:1078)
at oracle.mds.core.MDSInstance.getPersistenceManager(MDSInstance.java:638)
at oracle.mds.core.MDSSession.getPersistenceManager(MDSSession.java:1992)
at oracle.mds.core.MDSSession.getBaseMO(MDSSession.java:2769)
at oracle.mds.core.MDSSession.getMetadataObject(MDSSession.java:1188)
Truncated. see log file for complete stacktrace

The above mentioned error is due to a known issue for JDeveloper and ADF 11g.

This is related to the initialization of the ADFShare components in a web environment. the oracle.adf.share.http.ServletADFContext must be initialized per request. Normally, this is achieved because the jdev design time adds the ADFBindingFilter to the project web.xml when certain actions are taken

The ServletADFFilter must be used for correct use of ADFContext. ServletADFFilter specifically setup ServletADFContext properly at the start of the request.

<filter>
 <filter-name>ServletADFContextFilter</filter-name>
 <filter-class>oracle.adf.share.http.ServletADFFilter</filter-class>
 </filter>
 <filter-mapping>
 <filter-name>ServletADFContextFilter</filter-name>
 <url-pattern>/*</url-pattern>
 <dispatcher>REQUEST</dispatcher>
 <dispatcher>FORWARD</dispatcher>
 </filter-mapping>
Advertisements

oracle.jbo.InvalidObjNameException: JBO-25005


oracle.jbo.InvalidObjNameException: JBO-25005: Object name oracle_jbo_uicli_binding_JUIteratorBinding_281 of type Iterator Binding Definition is invalid.
 

the issue is with the filter order in the web.xml as explained in the bug 9880967

the correct order of the JspFilter and ApplSessionFilter in the web.xml is as follows

 <filter-mapping>
 <filter-name>JpsFilter</filter-name>
 <servlet-name>Faces Servlet</servlet-name>
 <dispatcher>FORWARD</dispatcher>
 <dispatcher>REQUEST</dispatcher>
 <dispatcher>INCLUDE</dispatcher>
 </filter-mapping>
 <filter-mapping>
 <filter-name>ApplSessionFilter</filter-name>
 <servlet-name>Faces Servlet</servlet-name>
 <dispatcher>FORWARD</dispatcher>
 <dispatcher>REQUEST</dispatcher>
 </filter-mapping>
 

How to check pending changes in the page when browser back button is clicked


set the following property in the af:document tag of your page

<af:document id="d1" uncommittedDataWarning="on">

uncommittedDataWarning - Specifies whether users should be warned about uncommitted data when navigating off the page or region. Setting this property to ‘on’ will enable the warnings.
we can also call

ViewPortContext.isDataDirty();

to check for any uncommitted data