--- Sanjiv Kumar <[EMAIL PROTECTED]> wrote: > At
02:01 PM 2/23/2001 -0500, you wrote:
> >No server that has sucessfully passed CTS 1.2 --
> official certification
> >based on that suite of 6,000+ tests, not
> certification based on subjective
> >interpretation of adherence to the specs -- can
> make use of passing objects
> >by reference. This optimization is strictly
> disallowed, not a permissable
> >value-add. That's not to say it isn't valuable, and
> non-compliant servers do
> >have an advantage there. It's just to say that if
> you're using a certified
> >app server, don't expect this local optimization.
> >
> >A future version of the spec will address this.
> >
> >
> >psn
> >
> >
> >-----Original Message-----
> >From: A mailing list for Enterprise JavaBeans
> development
> >[mailto:[EMAIL PROTECTED]]On Behalf Of Dan
> Christopherson
> >Sent: Friday, February 23, 2001 1:10 PM
> >To: [EMAIL PROTECTED]
> >Subject: Re: If the EJBs are on the local machine
> will it avoid making
> >rem ote calls?
> >
> >
> >On Fri, 23 Feb 2001, Thibault Cuvillier wrote:
> >
> >> Dan,
> >>
> >> >Specifically, the EJB Container is not allowed
> to pass
> >> >non-remote objects
> >> >by reference on inter-EJB invocations when the
> calling and called
> >> >enterprise beans are collocated in the same JVM.
> Doing so
> >> >could result in
> >> >the multiple beans sharing the state of a Java
> object, which
> >> >would break
> >> >the enterprise beans semantics.
> >>
> >> Thank for the spec outline Dan.
> >>
> >> But, most of the AS do not duplicate the objects
> passed by reference by
> >> the middleware during a local call, which break
> the EJB semantic.
> >Then they're not spec-compliant.
> >
> >>
> >> That's mean that when you develop an EJB, you
> must be aware about
> >> problem, and keep in mind that pass-by-value
> objects may be in fact passed
> >> by references in the case of a local call.
> >I'd say "should be aware" - most AS will allow you
> to turn on this
> >optimization, some may default to having it on, but
> if you can't coax the
> >container to do pass by value, it isn't an EJB 1.1
> (or 2.0,
> >when there is such a thing) container.
> >
> >>
> >> So the following code is dangerous:
> >>         public void doSomeStuff(List list) {
> >>                 list.add("hello");
> >>                 // do some stuff with "list"
> >>         }
> >> This code should be fixed as:
> >>         public void doSomeStuff(List list) {
> >>                 List local = new ArrayList();
> >>                 Collections.copy(list, local);
> >>                 local.add("hello");
> >>                 // do some stuff with "local"   }
> >>
> >> This example applied as well to by-values
> returned objects:
> >>         private List accounts;
> >>
> >>         public List getAccounts() {
> >>                 return accounts;
> >>         }
> >>         This client may change the account list
> if the case of a local
> >call
> >> (passed by reference), which break the
> encapsulation.
> >>
> >> This method should be fixed as:
> >>         private List accounts;
> >>
> >>         public List getAccounts() {
> >>                 List copy = new ArrayList();
> >>                 Collections.copy(accounts, copy);
> >>                 return copy;
> >>         }
> >> Or (better solution)
> >>         private List accounts;
> >>
> >>         public List getAccounts() {
> >>                 return
> Collection.unmodifiableList(accounts);
> >>         }
> >>
> >> Tibo.
> >>
> >>
>
>===========================================================================
> >> To unsubscribe, send email to
> [EMAIL PROTECTED] and include in the
> >body
> >> of the message "signoff EJB-INTEREST".  For
> general help, send email to
> >> [EMAIL PROTECTED] and include in the body of
> the message "help".
> >>
> >
> >--
> >Dan Christopherson (danch)
> >nVisia Technical Architect (www.nvisia.com)
> >
> >Opinions expressed are mine and do not neccessarily
> reflect any
> >position or opinion of nVISIA.
> >
>
>---------------------------------------------------------------------------
> >If you're a capitalist and you have the best goods
> and they're
> >free, you don't have to proselytize, you just have
> to wait.
> >-Eben Moglen
> >
>
>===========================================================================
> >To unsubscribe, send email to [EMAIL PROTECTED]
> and include in the body
> >of the message "signoff EJB-INTEREST".  For general
> help, send email to
> >[EMAIL PROTECTED] and include in the body of
> the message "help".
> >
>
>===========================================================================
> >To unsubscribe, send email to [EMAIL PROTECTED]
> and include in the body
> >of the message "signoff EJB-INTEREST".  For general
> help, send email to
> >[EMAIL PROTECTED] and include in the body of
> the message "help".
> >
>
>
===========================================================================
> To unsubscribe, send email to [EMAIL PROTECTED]
> and include in the body
> of the message "signoff EJB-INTEREST".  For general
> help, send email to
> [EMAIL PROTECTED] and include in the body of the
> message "help".
>


__________________________________________________
Do You Yahoo!?
Yahoo! Auctions - Buy the things you want at great prices! http://auctions.yahoo.com/

===========================================================================
To unsubscribe, send email to [EMAIL PROTECTED] and include in the body
of the message "signoff EJB-INTEREST".  For general help, send email to
[EMAIL PROTECTED] and include in the body of the message "help".

Reply via email to