Hi Jim,
Sure, inside your onAcquire/onRelease method you can do something like,
try {
.....
} catch (MyException e) {
throw new ControlException(e);
}
On 10/11/07, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
> Hi Chad,
>
> I missed the reply that you posted (below) to the mailing list in my mailbox.
> Sorry about that.
>
> Can you give an example of what you mean by "wrap the exception in
> a org.apache.beehive.controls.api.ControlException"?
>
> Thanks,
> Jim
>
>
> =========================================
> Hello,
>
> I don't believe its possible to change the signature of
> onAcquire/onRelease event handlers since they are part of the core
> controls package. I think the documentation you mentioned was
> referring to custom event handlers defined by a user.
>
> What we have done in the past when it was desirable to throw an
> exception from one of these methods has been to wrap the exception in
> a org.apache.beehive.controls.api.ControlException which is a runtime
> exception and can be thrown from anywhere.
>
> - Chad
>
>
> ---- [EMAIL PROTECTED] wrote:
> > Hi,
> >
> > I am working in a WebLogic/Workshop environment, and am VERY new to Beehive.
> >
> > I'm currently upgrading an application that was originally written in
> > Workshop
> > 8.1 to WebLogic/Workshop 9.2. This application uses several custom
> > controls,
> > and after upgrading by Workshop (via an import), the original custom
> > controls
> > got "converted" to Beehive controls.
> >
> > The original custom controls used what use to be the context_onAcquire() and
> > context_onRelease() methods to setup the environment for the control code,
> > and
> > to cleanup the environment, respectively, and after the initial conversion,
> > these two methods weren't being called.
> >
> > So, I manually added the necessary "things", e.g.:
> >
> > import org.apache.beehive.controls.api.events.EventHandler;
> > import org.apache.beehive.controls.api.context.ResourceContext;
> > .
> > .
> > @org.apache.beehive.controls.api.context.Context
> > ResourceContext resourceContext;
> > .
> > .
> > @EventHandler(field="resourceContext",
> > eventSet=ResourceContext.ResourceEvents.class,
> > eventName="onAcquire")
> > public void onAcquire() throws Exception
> > {
> > .. code that use to be in context_onAcquire()
> > }
> >
> >
> > @EventHandler(field="resourceContext",
> > eventSet=ResourceContext.ResourceEvents.class,
> > eventName="onRelease")
> > public void onRelease() throws Exception
> > {
> > .. code that use to be in context_onRelease()
> > }
> >
> > However, when I did that, and tried to build the application, I got an
> > "Unhandled exception type Exception" in a module named
> > "XXXImplInitializer.java":
> >
> > public void onAcquire()
> > {
> > __bc_impl.onAcquire();
> > }
> >
> > [In the original non-Beehive code, context_onAcquire() had:
> >
> > public void context_onAcquire() throws Exception
> > ]
> >
> > I eventually worked around this problem by removing the "throws Exception"
> > from
> > the "public void onAcquire()" and by commenting out all of the "throw new
> > Exception(...)" lines in the onAcquire() method.
> >
> > I think that info on the following page speaks to this under "Upgrading
> > Exception Handling in Control Event Handlers":
> >
> > http://edocs.bea.com/workshop/docs92/ws_platform/upgrading/conUpgradingJavaContr
> > ols.html
> >
> > As I mentioned, I am really new to Beehive, but I think that my
> > "workaround" is
> > doing the 2nd option that page mentions, i.e.:
> >
> > "Remove the throws clause from the event handler code and implement another
> > way
> > to handle exceptions generated from the event"
> >
> > But, I'd like to reinstate things so that my controls do throw exceptions,
> > but
> > I'm not quite sure I understand how to implement the 1st option:
> >
> > "Add the throws clause your event handler is throwing to the EventSet event
> > method. You will also need to add a corresponding try/catch block to code
> > that
> > invokes the event method"
> >
> > Is this just a matter of adding something to the "eventSet" in the
> > "EventHandler" annotation, and also, if that is the case, can someone tell
> > me
> > exactly what I need to add there?
> >
> > Or, if I need to do something additional, what else do I need to do?
> >
> > Thanks in advance,
> > Jim
> >
> >
>
>