I don't think the jdk listeners throw exceptions. If the onBorrow (or any other method) throws an exception, the pool will have to catch them and handle them. I think it's best to let the interface implementations deal with their own exceptions and not report them back to the pool.

David



From: "Quinton McCombs" <[EMAIL PROTECTED]>
Reply-To: "Jakarta Commons Developers List" <[EMAIL PROTECTED]>
To: "Jakarta Commons Developers List" <[EMAIL PROTECTED]>
Subject: RE: [POOL] Pool listeners
Date: Fri, 28 Feb 2003 14:07:37 -0600


> -----Original Message-----
> From: David Graham [mailto:[EMAIL PROTECTED]
> Sent: Friday, February 28, 2003 1:53 PM
> To: [EMAIL PROTECTED]
> Subject: Re: [POOL] Pool listeners
>
>
> I would make PoolListener more closely match the Java
> listener style.  That
> is:
> 1. PoolListener extends java.util.EventListener

Makes sense.

> 2. The methods accept an event object that extends
> java.util.EventObject (maybe call it PoolEvent).

Again, makes sense.

> 3. The methods shouldn't throw Exception.  They should throw specific
> exception types or non at all.

I thought about declaring something like ListenerException to be thrown
instead.  ListenerException would be a subclass of NestableException for
commons-lang.  Would this be better?

Consider a pool of database connections.  A listener is configured to
handle onBorrow().  The goal is to execute a stored procedure or
something before the connection is returned from the pool.  There is the
possibility that a SQLException could be thrown during the execution.
Of course it would have to be trapped within the listener code and
rethrown as a ListenerException.  This just give the person writing the
listener the option to either silently ignore the failure or to throw an
Exception.

> I like the concept.
>
> David
>
>
>
>
> >From: "Quinton McCombs" <[EMAIL PROTECTED]>
> >Reply-To: "Jakarta Commons Developers List"
> ><[EMAIL PROTECTED]>
> >To: <[EMAIL PROTECTED]>
> >Subject: [POOL] Pool listeners
> >Date: Fri, 28 Feb 2003 13:19:48 -0600
> >
> >I am working on a patch to allow listeners to be added to pools that
> >will receive notifications on various events.  Does anyone object to
> >having this functionality included?
> >
> >Here is the design -
> >
> >I was thinking about adding support for a PoolListener interface for
> >the pool component.  Object which implement this interface could be
> >added to any ObjectPool or KeyedObjectPool.  The listener would be
> >notified on the following events:
> >
> >- An object is borrowed from the pool
> >- An object is returned to the pool
> >- An new object is created and added to the pool
> >- An object is removed from the pool
> >
> >addListener(PoolListener) would be defined in ObjectPool and
> >KeyedObjectPool.  It would be implemented in BaseObjectPool and
> >BaseKeyedObjectPool.  Also in the previous two Base*
> classes, protected
> >methods would be added to handle sending out the
> notifications to the
> >list of listeners.
> >
> >public interface PoolListener
> >{
> >     /**
> >      * Executed immediatedly before an object is returned
> from the pool.
> >      *
> >      * @param obj The object being returned
> >      * @throws Exception generic exception
> >      */
> >     void onBorrow(Object obj) throws Exception;
> >
> >     /**
> >      * Executed immediately after an object is returned to the pool.
> >      *
> >      * @param obj the object being returned
> >      * @throws Exception generic exception
> >      */
> >     void onReturn(Object obj) throws Exception;
> >
> >     /**
> >      * Executed immediately after a new object is created
> but before it
> >      * is added to the pool.
> >      *
> >      * @param obj  the newly created object
> >      * @throws Exception generic exception
> >      */
> >     void onCreate(Object obj) throws Exception;
> >
> >     /**
> >      * Executed when an object is removed from the pool.
> >      *
> >      * @param obj The object being removed.
> >      * @throws Exception generic exception
> >      */
> >     void onDestroy(Object obj) throws Exception;
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: [EMAIL PROTECTED]
> >For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> _________________________________________________________________
> Tired of spam? Get advanced junk mail protection with MSN 8.
> http://join.msn.com/?page=features/junkmail
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


_________________________________________________________________
Protect your PC - get McAfee.com VirusScan Online http://clinic.mcafee.com/clinic/ibuy/campaign.asp?cid=3963



--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to