/** * This code is needed to serialize non-Serializable objects that can be * part of a bean's state. See EJB2.0 section 7.4.1. */ protected Object replaceObject(Object obj) throws IOException { Object result = obj; if (obj instanceof IndirectlySerializable) { result = ((IndirectlySerializable) obj).getSerializableObjectFactory(); } else if (obj instanceof Context) { result = new SerializableJNDIContext((Context) obj); } else { for (GlassFishOutputStreamHandler handler : handlers) { Object r = handler.replaceObject(obj); if (r != null) { result = r; break; } } } return result; }