[ https://issues.apache.org/jira/browse/TUSCANY-1434?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Luciano Resende resolved TUSCANY-1434. -------------------------------------- Resolution: Fixed Fix Version/s: Java-DAS-Next Suggested fix applied. > DAS.applyChanges() does not initialize database connection if needed > -------------------------------------------------------------------- > > Key: TUSCANY-1434 > URL: https://issues.apache.org/jira/browse/TUSCANY-1434 > Project: Tuscany > Issue Type: Bug > Components: Java DAS RDB > Affects Versions: Java-DAS-beta1 > Reporter: Ron Gavlin > Fix For: Java-DAS-Next > > > I am attempting to use das.applyChanges() to insert a row into the CUSTOMER > table. My augmented "basicCustomerMappingWithCUD2.xml" file includes a > "ConnectionInfo" element with a "datasource" attribute specified. Note below > that I am using static SDO without invoking the standard priming > das.getCommand("command").executeQuery() before invoking das.applyChanges(). > When I execute the following code snippet, I receive an error in > das.applyChanges() that there is no database connection currently open. > DAS das = > DAS.FACTORY.createDAS(getConfig("basicCustomerMappingWithCUD2.xml")); > DataGraph dg = SDOUtil.createDataGraph(); > dg.getChangeSummary().beginLogging(); > dg.createRootObject(TypeHelper.INSTANCE.getType(Customers.class)); > Customers customers = (Customers) dg.getRootObject(); > Customer customer = CustomerFactory.INSTANCE.createCustomer(); > customer.setID(9999); > customer.setLASTNAME("Jones"); > customers.getCustomer().add(customer); > // FIXME the following line is required to workaround this DAS bug > // whereby no connection exists w/out a priming > getCommand().executeQuery() > // Note that the following line should be removed in this test code > after the patch for this bug is applied > ((DASImpl) das).getConnection(); > // end of FIXME > > das.applyChanges((DataObject) customers); > The proposed patch for this bug is as follows: > org.apache.tuscany.das.rdb.impl.DASImpl.class > Change line 114 FROM > Line 107 > /* > * (non-Javadoc) > * > * @see org.apache.tuscany.das.rdb.CommandGroup#getApplyChangesCommand() > */ > public ApplyChangesCommandImpl getApplyChangesCommand() { > ApplyChangesCommandImpl cmd = new > ApplyChangesCommandImpl(configWrapper, connection); // Line 114 > return cmd; > } > TO > Line 107 > /* > * (non-Javadoc) > * > * @see org.apache.tuscany.das.rdb.CommandGroup#getApplyChangesCommand() > */ > public ApplyChangesCommandImpl getApplyChangesCommand() { > ApplyChangesCommandImpl cmd = new > ApplyChangesCommandImpl(configWrapper, getConnection()); //Line 114 > return cmd; > } > FYI, the customer.xsd for this test was augmented to include the "Customers" > complex type as follows: > <xsd:complexType name="Customers"> > <xsd:sequence> > <xsd:element name="customer" type="Customer" maxOccurs="unbounded" > /> > </xsd:sequence> > </xsd:complexType> > Let me know if you have questions. > - Ron -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]