Hi, with javassist it is important to filter finalize method (it is a jira if i remember) however i don't get the way we do it:
if (method.getName() == FINALIZE && // Method.getName() is defined to return .intern() in the VM spec. method.getParameterTypes().length == 0 && method.getReturnType() == Void.TYPE) { // we should NOT invoke the bean's finalize() from proxied // finalize() method since JVM will invoke it directly. // OWB-366 return null; } using javassist 3.15 i got weird stuff. It looked finalize() was redirected to _d2finalize (not sure why). i updated locally OWB to use on the ProxyFactory (in JavassistProxyFactory): fact.setFilter(new MethodFilter() { // TODO if relevant: create FinalizerMethodFilter singleton + intern usage for method name public boolean isHandled(Method method) { return !(method.getName().equals("finalize") && method.getParameterTypes().length == 0 && method.getReturnType() == Void.TYPE); } }); and i didn't see the errors anymore :) now the question ;): any reason we are not filtering this way? btw i could dump bytecode before/after if needed - Romain