Serializable mappedValue = null;
if (notifyOnSet != null) {
synchronized (this) {
for (int i = 0; i < notifyOnSet.size() ; i++) {
PropertySetCallback psc = (PropertySetCallback) notifyOnSet.elementAt(i);
if (!psc.validate(key, value, d))
continue;
// if this property should not be used then
// don't call apply. This depends on where
// the old value comes from
// SET_IN_JVM - property will not be used
// SET_IN_DATABASE - propery will be used
// SET_IN_APPLICATION - will become SET_IN_DATABASE
// NOT_SET - will become SET_IN_DATABASE
if (!dbOnlyProperty && key.startsWith("derby.")) {
if (PropertyUtil.whereSet(key, d) == PropertyUtil.SET_IN_JVM)
continue;
}
Serviceable s;
if ((s = psc.apply(key,value,d)) != null)
((TransactionManager) tc).addPostCommitWork(s);
if (mappedValue == null)
mappedValue = psc.map(key, value, d);
}
}
}
return mappedValue;
}