PLEASE DO NOT REPLY TO THIS MESSAGE. TO FURTHER COMMENT ON THE STATUS OF THIS BUG PLEASE FOLLOW THE LINK BELOW AND USE THE ON-LINE APPLICATION. REPLYING TO THIS MESSAGE DOES NOT UPDATE THE DATABASE, AND SO YOUR COMMENT WILL BE LOST SOMEWHERE. http://nagoya.apache.org/bugzilla/show_bug.cgi?id=3496 *** shadow/3496 Fri Sep 7 09:26:51 2001 --- shadow/3496.tmp.29626 Fri Sep 7 09:26:51 2001 *************** *** 0 **** --- 1,47 ---- + +============================================================================+ + | Null values in related ids | + +----------------------------------------------------------------------------+ + | Bug #: 3496 Product: Turbine | + | Status: NEW Version: 2.1 final | + | Resolution: Platform: PC | + | Severity: Normal OS/Version: Windows NT/2K | + | Priority: Other Component: Torque | + +----------------------------------------------------------------------------+ + | Assigned To: [EMAIL PROTECTED] | + | Reported By: [EMAIL PROTECTED] | + | CC list: Cc: | + +----------------------------------------------------------------------------+ + | URL: | + +============================================================================+ + | DESCRIPTION | + When you create a new Torque object, based on a base Torque object, any + NumberKey fields it has (eg Id) will return null. + + So those of us used to doing the old remoteapps + 'if xxx.getId() == 0' + to check for new objects, will have to instead use + 'if xxx.getId() == null' + + which is fine. However, if a numberkey represented field is supposed to have a + null value, when that object is loaded from the database, its NumberKey field + will be a new NumberKey with a null value, so: + 'if xxx.getSomeId().getValue() == null' + is the check that needs to be used in this case. This is a little inconsistent, + and requires most checks to be: + 'if xxx.getSomeId() == null || xxx.getsomeId().getValue() == null' + + This is inconsistent, and ideally new objects should have NumberKeys with null + values too. + + The problem arises when a related object is optional. Using the example of + Prize, which has an optional Sponsor with a SponsorId NumberKey field. + Internally, the BasePrize *does not perform the above check* when getSponsor() + is called. What should happen is that, before returning the Sponsor, the + BasePrize checks that the sponsor_id NumberKey is not null. It should then + check that the value of that NumberKey is not null (which it does not). Only + then should it attempt to load from the database. + + The result is that, if a related id field is intentionally null, any calls to + get[related object] result in an error message. + + Dave. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
