[mapguide-internals] Exception thrown on null values?

Paul Spencer pspencer at dmsolutions.ca
Thu Feb 28 20:27:04 EST 2008


I am checking to see if each property on each feature is null before  
trying to read it in PHP.  Can I rely on an exception happening in the  
case of a null property?  If yes, then I could remove that check on  
every property and just put it in a try/catch block.

Paul

On 28-Feb-08, at 5:30 PM, Bruce Dechant wrote:

> I don't, just like any other FDO API implementation, but it is at  
> least something that helps with the current implementation.
> Is this at the cost of some performance - sure I won't deny that. I  
> wouldn't say that this is penalizing existing providers because the  
> behavior is now consistent in that a MgNullPropertyValueException is  
> thrown instead of unexpected behavior in the past - where the  
> results varied by provider.
>
> Bruce
>
> -----Original Message-----
> From: mapguide-internals-bounces at lists.osgeo.org [mailto:mapguide-internals-bounces at lists.osgeo.org 
> ] On Behalf Of Traian Stanev
> Sent: Thursday, February 28, 2008 3:21 PM
> To: MapGuide Internals Mail List
> Subject: RE: [mapguide-internals] Exception thrown on null values?
>
> How do you know said future provider will implement IsNull()  
> correctly so that you rely on it? The answer is that you can't  
> guarantee anything about future providers -- it's the responsibility  
> of whoever writes the provider to fix it. So penalizing existing  
> providers because of hypothetical future providers doesn't make much  
> sense.
>
>
> Traian
>
>
>> -----Original Message-----
>> From: mapguide-internals-bounces at lists.osgeo.org [mailto:mapguide-
>> internals-bounces at lists.osgeo.org] On Behalf Of Bruce Dechant
>> Sent: Thursday, February 28, 2008 5:17 PM
>> To: MapGuide Internals Mail List
>> Subject: RE: [mapguide-internals] Exception thrown on null values?
>>
>> I agree the provider should be fixed, but what about new providers  
>> that
>> come out.
>> What if they are not as diligent in their implementation? Should the
>> server not try to prevent a crash to safe guard this instead of just
>> blindly trusting every provider to be perfect?
>>
>> Bruce
>>
>> -----Original Message-----
>> From: mapguide-internals-bounces at lists.osgeo.org [mailto:mapguide-
>> internals-bounces at lists.osgeo.org] On Behalf Of Traian Stanev
>> Sent: Thursday, February 28, 2008 3:14 PM
>> To: MapGuide Internals Mail List
>> Subject: RE: [mapguide-internals] Exception thrown on null values?
>>
>>
>> So it will penalize everybody, instead of fixing the provider in
>> question to throw an exception when it should?
>>
>> Traian
>>
>>> -----Original Message-----
>>> From: mapguide-internals-bounces at lists.osgeo.org [mailto:mapguide-
>>> internals-bounces at lists.osgeo.org] On Behalf Of Bruce Dechant
>>> Sent: Thursday, February 28, 2008 5:12 PM
>>> To: MapGuide Internals Mail List
>>> Subject: RE: [mapguide-internals] Exception thrown on null values?
>>>
>>> Yup, but like I said at the cost of stability. :)
>>>
>>> I would rather do the check then have the server crash.
>>>
>>> -----Original Message-----
>>> From: mapguide-internals-bounces at lists.osgeo.org [mailto:mapguide-
>>> internals-bounces at lists.osgeo.org] On Behalf Of Traian Stanev
>>> Sent: Thursday, February 28, 2008 3:09 PM
>>> To: MapGuide Internals Mail List
>>> Subject: RE: [mapguide-internals] Exception thrown on null values?
>>>
>>>
>>> Hmm... always doing an IsNull() for everything has an overhead as
>> well
>>> -- internally to the provider it may be equivalent to getting the
>>> property twice. Once to check for null and another time to get the
>>> property value.
>>>
>>> Traian
>>>
>>>
>>>
>>>> -----Original Message-----
>>>> From: mapguide-internals-bounces at lists.osgeo.org [mailto:mapguide-
>>>> internals-bounces at lists.osgeo.org] On Behalf Of Bruce Dechant
>>>> Sent: Thursday, February 28, 2008 5:05 PM
>>>> To: MapGuide Internals Mail List
>>>> Subject: RE: [mapguide-internals] Exception thrown on null values?
>>>>
>>>> Jason,
>>>>
>>>> This is the expected behavior as Traian pointed out. This was
>> changed
>>>> from what it was before because now we do the IsNull() check
>>> internally
>>>> in the server on all GetXXX() APIs just in case the user "forgot"
>> to
>>>> call it. This was also done to prevent memory access violations
>> when
>>>> trying to call for example GetString() from a reader that has a
>> NULL
>>>> property value and the underlying provider tries to do the read
>>> string
>>>> and then crashes, by adding this check we have added some server
>>>> stability.
>>>>
>>>> Not all providers are created equally. :)
>>>>
>>>> Thanks,
>>>> Bruce
>>>>
>>>>
>>>> -----Original Message-----
>>>> From: mapguide-internals-bounces at lists.osgeo.org [mailto:mapguide-
>>>> internals-bounces at lists.osgeo.org] On Behalf Of Jason Birch
>>>> Sent: Thursday, February 28, 2008 2:48 PM
>>>> To: MapGuide Internals Mail List
>>>> Subject: RE: [mapguide-internals] Exception thrown on null values?
>>>>
>>>> Am I allowed to say "lame"?  :)  NULL is a perfectly valid value
>> for
>>>> most data types, and throwing an exception in this case adds a lot
>> of
>>>> additional processing that should not be required.
>>>>
>>>> I personally feel that this is a case where MapGuide could make
>>>> application developers lives a lot easier and improve (slightly?)
>> the
>>>> performance of web-level apps by swallowing the exception and
>>> returning
>>>> NULL.
>>>>
>>>> Jason
>>>>
>>>> -----Original Message-----
>>>> From: mapguide-internals-bounces at lists.osgeo.org
>>>> [mailto:mapguide-internals-bounces at lists.osgeo.org] On Behalf Of
>>> Traian
>>>> Stanev
>>>> Sent: Thursday, February 28, 2008 13:31
>>>> To: 'MapGuide Internals Mail List'
>>>> Subject: RE: [mapguide-internals] Exception thrown on null values?
>>>>
>>>> I think this complies with the FDO spec, which requires an
>> exception
>>> to
>>>> be thrown when the value is null and you try to get it anyway. The
>>> two
>>>> solutions are to check for IsNull() before getting it, or to catch
>>> the
>>>> exception. The code *could* in theory return NULL in this case,
>>> but...
>>>>
>>>> Traian
>>>>
>>>>> -----Original Message-----
>>>>> From: mapguide-internals-bounces at lists.osgeo.org
>> [mailto:mapguide-
>>>>> internals-bounces at lists.osgeo.org] On Behalf Of Jason Birch
>>>>> Sent: Thursday, February 28, 2008 4:29 PM
>>>>> To: MapGuide Internals Mail List
>>>>> Subject: [mapguide-internals] Exception thrown on null values?
>>>>>
>>>>> Hi,
>>>>>
>>>>> I'm seeing a case in MGOS 2.0 where MgFeatureReader->GetString()
>> is
>>>>> throwing an exception when the value of the string is null.
>>>>>
>>>>> Is this expected behaviour?  Has it changed since 1.2?  I believe
>>>> that
>>>>> I've seen a similar error in geometry, but don't have a test case
>>> for
>>>>> that yet.
>>>>>
>>>>> This is relatively easy to work around with a try/catch and
>>>> suppressing
>>>>> the error output if the message includes "null", but it's a bit
>>>>> annoying.  Is there a better way of dealing with this?
>>>>>
>>>>> Jason
>>>>> _______________________________________________
>>>>> mapguide-internals mailing list
>>>>> mapguide-internals at lists.osgeo.org
>>>>> http://lists.osgeo.org/mailman/listinfo/mapguide-internals
>>>> _______________________________________________
>>>> mapguide-internals mailing list
>>>> mapguide-internals at lists.osgeo.org
>>>> http://lists.osgeo.org/mailman/listinfo/mapguide-internals
>>>> _______________________________________________
>>>> mapguide-internals mailing list
>>>> mapguide-internals at lists.osgeo.org
>>>> http://lists.osgeo.org/mailman/listinfo/mapguide-internals
>>>> _______________________________________________
>>>> mapguide-internals mailing list
>>>> mapguide-internals at lists.osgeo.org
>>>> http://lists.osgeo.org/mailman/listinfo/mapguide-internals
>>> _______________________________________________
>>> mapguide-internals mailing list
>>> mapguide-internals at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/mapguide-internals
>>> _______________________________________________
>>> mapguide-internals mailing list
>>> mapguide-internals at lists.osgeo.org
>>> http://lists.osgeo.org/mailman/listinfo/mapguide-internals
>> _______________________________________________
>> mapguide-internals mailing list
>> mapguide-internals at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapguide-internals
>> _______________________________________________
>> mapguide-internals mailing list
>> mapguide-internals at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/mapguide-internals
> _______________________________________________
> mapguide-internals mailing list
> mapguide-internals at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapguide-internals
> _______________________________________________
> mapguide-internals mailing list
> mapguide-internals at lists.osgeo.org
> http://lists.osgeo.org/mailman/listinfo/mapguide-internals


__________________________________________

    Paul Spencer
    Chief Technology Officer
    DM Solutions Group Inc
    http://www.dmsolutions.ca/



More information about the mapguide-internals mailing list