Nested Layouts
All adapter classes of a plug-in should not be just subclasses of com.softwareag.cis.server.Adapter. Instead, they should be derived from one of the following classes:
com.softwareag.cis.plugin.adapter.util.CommonAdapter - for a plug-in that does not depend on
CentraSite Control com.centrasite.control.adapters.BaseAdapter - for a plug-in that depends on
CentraSite Control BaseAdapter is a subclass of CommonAdapter and thus inherits certain properties. Among those is the implicit registration of all adapters as known adapters in the current session context. However, under certain circumstances it may happen that adapters for nested pages displayed using a SUBCISPAGE or ROWTABSUBPAGES control are not automatically deregistered when closing, for example, an activity displayed in the CONTENT frame on the right hand side of the workplace. This may lead to subsequent NullPointerExceptions.
Normally, deregistration is accomplished within the destroy() method in CommonAdapter. Hence, be careful when overriding this method in a subclass to call super.destroy(). In addition, you should override the endProcess() method in the adapter for the container layout, which should perform at least the following actions:
call
super.endProcess()call
CommonAdapter.removeKnownAdapter (subPageAdapter) for each subPageAdapter