[ 
https://issues.apache.org/jira/browse/TUSCANY-1397?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12512615
 ] 

Fuhwei Lwo commented on TUSCANY-1397:
-------------------------------------

I cannot seem to locate the spec definition of return value of 
DataObject.createDataObject(invalidProperty) method if an invalid property was 
passed in. If that's the case, the best we can do is to return null DataObject 
without throwing NPE. The only difference this solution makes is the users 
either check for NPE or null.

Current:
try {
    DataObject child = parent.createDataObject("invalidProperty");
}
catch (NullPoinerException e) {
    // Instance property (open type or not) doesn't exist
}

New:
DataObject child = parent.createDataObject("invalidProperty");
if (child == null) {
    // Instance property (open type or not) doesn't exist
}

I also cannot find in the spec that createDataObject() needs to demand-create 
the instance property only DataObject.set() does. Beside that, I don't think we 
have enough information to determine the HelperContext (scope) of this new 
instance property.

> createDataObject() throws NPE if property does not exist
> --------------------------------------------------------
>
>                 Key: TUSCANY-1397
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-1397
>             Project: Tuscany
>          Issue Type: Bug
>          Components: Java SDO Implementation
>            Reporter: Andy Grove
>
> Calling createDataObject( "foo" ) where the data object's type does not 
> define a property "foo" causes a null pointer exception in 
> DataObjectUtil.createDataObject(DataObject dataObject, Property property, 
> Type type) because it attempts to call property.isContainment without 
> checking if the property is null.
> Calling createDataObject( "foo" ) on an open type should create an on-demand 
> property. If the type is not open and the property does not exist then an 
> exception should be thrown.
> Thanks,
> Andy.

-- 
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]

Reply via email to