private void deserializeSelfManagedData() throws IOException {
try {
for (int i = 0;
(selfManagedDataListHolder != null) && (i < selfManagedDataListHolder.size()); i++)
{
SelfManagedDataHolder selfManagedDataHolder =
(SelfManagedDataHolder) selfManagedDataListHolder.get(i);
String classname = selfManagedDataHolder.getClassname();
String qNameAsString = selfManagedDataHolder.getId();
SelfManagedDataManager handler = deserialize_getHandlerFromExecutionChain(
executionChain.iterator(), classname, qNameAsString);
if (handler == null) {
if (LoggingControl.debugLoggingAllowed && log.isTraceEnabled()) {
log.trace(getLogIDString() + ":deserializeSelfManagedData(): [" +
classname +
"] was not found in the executionChain associated with the message context.");
}
throw new IOException("The class [" + classname +
"] was not found in the executionChain associated with the message context.");
}
ByteArrayInputStream handlerData =
new ByteArrayInputStream(selfManagedDataHolder.getData());
// the handler implementing SelfManagedDataManager is responsible for repopulating
// the SelfManagedData in the MessageContext (this)
if (LoggingControl.debugLoggingAllowed && log.isTraceEnabled()) {