EMF SDO API setDataObject consumierend?

Franz Degenhardt

Erfahrenes Mitglied
Hallo,

ich verwende die SDO Api um innerhalb verschiedener Komponenten im WebSphere ESB Transformationen umzusetzten.
Bei der Verwendung von setDataObject(java.lang.String, commonj.sdo.DataObject) ist mir ein seltsames Verhalten aufgefallen.

Referenzen, die ich der Methode übergebe, sind nach dem Aufruf nicht mehr verfügbar.
Code:
DataFactory dataFactory = DataFactory.INSTANCE;
DataObject src = dataFactory.create("http://www.namespace.com", "BusinessObjectType");
DataObject trgt;
trgt.setDataObject(src);
Nach dem obigen code ist src null.
Code:
DataFactory dataFactory = DataFactory.INSTANCE;
DataObject src = dataFactory.create("http://www.namespace.com", "BusinessObjectType");
DataObject src;
DataObject trgt;
List<DataObject> l = new ArrayList<DataObject>();
l.add(src);
trgt.setDataObject(l.get(0));
Nach setDataObject ist die Liste leer. SetDataObject hat die Referenz dort enfernt.

Der Name der Methode "setDataObject" weisst nicht darauf hin, dass etwas in dem übergeben Objekt geändert wird.
Mit Google konnte ich nicht herausfinden, ob so ein Verhalten erwartet ist.
Weiss da jemand etwas zu?

edit:
Mittels http://publib.boulder.ibm.com/infoc...r.html#cloneDataObject(commonj.sdo.DataObject) kann ich ohne Probleme das DataObject clonen bevor ich setDataObject Aufrufe. Das Problem tritt in den meisten Fällen allerdings in generiertem Code auf, der aus grafischen Mappingtabellen generiert wird und standardmässig code wie
Code:
target.setDataObject(source.getDataObject("BoName"));
erzeugt. Dort habe ich dann durch die Generierung keine Eingriffsmöglichkeit.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück