Set<ClassDefinition> defs = new HashSet<ClassDefinition>();
Set<Class<?>> changedClasses = new HashSet<Class<?>>();
Set<Class<?>> classesToReload = new HashSet<Class<?>>();
for (int i = 0; i < classDefinitions.length; ++i) {
try {
ClassDefinition d = classDefinitions[i];
ClassFile file = new ClassFile(new DataInputStream(new ByteArrayInputStream(d.getDefinitionClassFile())));
modifyReloadedClass(file, d.getDefinitionClass().getClassLoader(), d.getDefinitionClass(), classesToReload);
ByteArrayOutputStream bs = new ByteArrayOutputStream();
file.write(new DataOutputStream(bs));
changedClasses.add(d.getDefinitionClass());
ClassDefinition n = new ClassDefinition(d.getDefinitionClass(), bs.toByteArray());
defs.add(n);
} catch (IOException e) {
log.error("IO Error", e);
}
}