I don't think we should do it.

On Apr 10, 2008, at 5:10 PM, Geert Bevin wrote:
> Ok, I did the byte code detection, only to realize that there are of
> course ATHROW opcodes that are not explicit exception throw statements
> (for instance with synchronized statements to re-throw exceptions
> after exiting the monitor). Any tips on how to easily handle this.
> Otherwise, I'll just let this part slide, no use spending too long on
> such a thing.
>
> On Tue, Apr 8, 2008 at 8:31 AM, Geert Bevin <[EMAIL PROTECTED]> wrote:
>> I'd say that I should be catching Errors as well. When reading  
>> through
>> the javadocs (http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Error.html 
>> ),
>> it seems that re-throwing ThreadDeath and VirtualMachineError should
>> properly let the appropriate ones propagate.
>>
>>
>>
>> On Tue, Apr 8, 2008 at 2:45 AM, Tim Eck <[EMAIL PROTECTED]>  
>> wrote:
>>>
>>>
>>>
>>>
>>> Yeah, it  isn't cut and dry for me either. It seems that in the  
>>> context of
>>> executing an SRA, it doesn't seem like anything should be fatal  
>>> though. If
>>> an OOME happens there (but isn't propagated), it is almost certain  
>>> another
>>> critical thread will get an OOME as well.
>>>
>>>
>>>
>>> What about an AssertionError, or NoClassDefFoundError?..…they just  
>>> don't
>>> seem to be in the same category of critical things, but are still  
>>> Errors.
>>>
>>>
>>>
>>>
>>> ________________________________
>>>
>>>
>>> From: [EMAIL PROTECTED]
>>> [mailto:[EMAIL PROTECTED] On Behalf Of Steven  
>>> Harris
>>> Sent: Monday, April 07, 2008 5:40 PM
>>>
>>>
>>> To: [email protected]
>>> Subject: Re: [tc-dev] Implementing SRAs
>>>
>>>
>>>
>>>
>>>
>>> Any Exceptions that occurs should be logged for sure.
>>>
>>>
>>> I'm on the fence as to whether we want to trap Errors (OOME is an  
>>> Error).
>>>
>>>
>>> I'm trying to think what the impact of an OOME that was trapped  
>>> and logged
>>> would be.
>>>
>>>
>>> LIkely another thread would also be unable to create memory and  
>>> OOME as
>>> well.
>>>
>>>
>>> Any thoughts.
>>>
>>>
>>>
>>>
>>>
>>> On Apr 7, 2008, at 5:34 PM, Taylor Gautier wrote:
>>>
>>>
>>>
>>>
>>>
>>>
>>> What about Errors like OOME?  These should be propagated no?  What  
>>> do we
>>> catch and what do we propagate?
>>>
>>>
>>> Tim Eck wrote: I tend to agree with Alex here. I think others have  
>>> also
>>> mentioned (and I
>>> second the motion) that an unhandled exception in an SRA should  
>>> not be a
>>> fatal event -- which implies catching Throwable and logging.
>>>
>>> Some sort of static bytecode checker doesn't hurt I guess (as long  
>>> it as
>>> doesn't produce any false positives), but it doesn't seem like a
>>> substitute for runtime error handling.
>>>
>>>
>>>
>>> -----Original Message-----
>>> From: [EMAIL PROTECTED] [mailto:tc-dev-
>>> [EMAIL PROTECTED] On Behalf Of Alex Miller
>>> Sent: Monday, April 07, 2008 7:42 AM
>>> To: [email protected]
>>> Subject: Re: [tc-dev] Implementing SRAs
>>>
>>> If this is a requirement that must be met by all SRA implementations
>>> for safety, I would catch Throwable in the framework on
>>> retrieveStatisticData.  Seems like we shouldn't rely on javadoc for
>>> the safety of the system.  Instead of preventing SRA implementers  
>>> from
>>> throwing exceptions, why not just catch them explicitly and handle
>>> them in a standard way?  That seems more straightforward than
>>> examining their bytecode and telling them they're naughty.
>>>
>>> On Apr 7, 2008, at 9:22 AM, Geert Bevin wrote:
>>>
>>>
>>> Hi everyone,
>>>
>>> a small note to highlight that when an SRA is implemented, you  
>>> should
>>> *imperatively* read the javadocs of the
>>> com.tc.statistics.StatisticRetrievalAction interface. For example,  
>>> the
>>> retrieveStatisticData method stipulates that no exceptions
>>> whatshowever should bubble up. The main reason for this is that SRA
>>> executions should never ever compromise the state nor the runtime
>>> behavior of the system they are running in. A exception that bubbles
>>> up can cause the client to exit for instance.
>>>
>>> I'm considering adding statements that catch all throwables whenever
>>> retrieveStatisticData is executed, but I'm reluctant because that
>>> could lead to sloppy implementations when people just go ahead and
>>> throw runtime exceptions. Now that I think of it, I might actually
>>> analyze the bytecode of the retrieveStatisticData methods of the
>>> registered SRAs in the SRACorrectnessTest tests and fail if there  
>>> are
>>> exception throws. Any thoughts on this?
>>>
>>> Thanks,
>>>
>>> Geert
>>>
>>> PS.: now that I think more about it, I'll probably do both ...  
>>> ensure
>>> that the system stays up and prevent the developers from writing bad
>>> code ;-)
>>>
>>> --
>>> Geert Bevin
>>> Terracotta - http://www.terracotta.org
>>> Uwyn "Use what you need" - http://uwyn.com
>>> RIFE Java application framework - http://rifers.org
>>> Music and words - http://gbevin.com
>>> _______________________________________________
>>> tc-dev mailing list
>>> [email protected]
>>> http://lists.terracotta.org/mailman/listinfo/tc-dev
>>>
>>> _______________________________________________
>>> tc-dev mailing list
>>> [email protected]
>>> http://lists.terracotta.org/mailman/listinfo/tc-dev
>>>
>>> _______________________________________________
>>> tc-dev mailing list
>>> [email protected]
>>> http://lists.terracotta.org/mailman/listinfo/tc-dev
>>>
>>>
>>>
>>> _______________________________________________
>>> tc-dev mailing list
>>> [email protected]
>>> http://lists.terracotta.org/mailman/listinfo/tc-dev
>>>
>>>
>>> _______________________________________________
>>> tc-dev mailing list
>>> [email protected]
>>> http://lists.terracotta.org/mailman/listinfo/tc-dev
>>>
>>>
>>
>>
>>
>> --
>>
>>
>> Geert Bevin
>> Terracotta - http://www.terracotta.org
>> Uwyn "Use what you need" - http://uwyn.com
>> RIFE Java application framework - http://rifers.org
>> Music and words - http://gbevin.com
>>
>
>
>
> -- 
> Geert Bevin
> Terracotta - http://www.terracotta.org
> Uwyn "Use what you need" - http://uwyn.com
> RIFE Java application framework - http://rifers.org
> Music and words - http://gbevin.com
> _______________________________________________
> tc-dev mailing list
> [email protected]
> http://lists.terracotta.org/mailman/listinfo/tc-dev

_______________________________________________
tc-dev mailing list
[email protected]
http://lists.terracotta.org/mailman/listinfo/tc-dev

Reply via email to