b.append(m.getString(aKey));
}
String skey = b.toString();
if(m.getDirection() == getMatchDirection()){
int[] savedFields = getSavedFields();
ISOMsg saved = (ISOMsg)(
(savedFields != null && savedFields.length != 0) ?
m.clone(savedFields) : m.clone());
int[] ignoredFields = getIgnoredFields();
if (ignoredFields != null) saved.unset(ignoredFields);
getSpace().out(skey, saved, getTimeout());
return m;
} else {
ISOMsg saved = (ISOMsg)getSpace().inp(skey);
if (saved == null && isVetoUnmatched())
throw new VetoException("unmatched iso message");
else if(saved != null) {
if (!isOverwriteOriginalFields()) m.merge(saved);
else {
saved.merge(m);
m = saved;
}
}
return m;
}