Java Mailing List Archive

http://www.junlu.com/

Google
Google
Mailing List
Home
Forum Home
JBoss - Java Application Server
Struts - A MVC web framework
Tomcat - JSP/Servlet container
iText - An open source PDF Java Library
JDOM - JDOM XML Parser
J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition
J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog
Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology
JSP - A mailing list about Java Server Pages specification and reference
Struts & Hibernate
Subjects
JSP editor plugin for eclipse ?
org apache jasper JasperException: Unable to compile class for JSP
Tomcat: Connection reset by peer: socket write error
Cannot retrieve definition for form bean null
Struts Tiles Tutorial (free Struts training)
Where do I download Tomcat 4 0 6?
Data Access Object (DAO) pattern, example DAO 's
Where to download Tomcat v 4 1 24 from?
Tomcat 5 0 16 Requested resource not available
Oracle Connection Pooling in 3 2 2
Servlet : Session invalidate
Servlet action is currently unavailable
Tomcat/Struts Unicode Encoding/Decoding problems
Tomcat and webapplication specific java library path
Running a Simple JMS Example
Mapping in workers2 properties
org apache jasper JasperException
Cannot find message resources under key org apache struts action
   MESSAGE
problem with html:text bean throwing exception
Cannot find message resources under key org apache struts action MESSAGE
invalid direct reference problem with solution
Tool for jsp debug Try Sysdeo Eclipse Plugin
Tomcat 5 Cannot load JDBC driver class 'null ' SQL state: null
weblogic ejbc
java properties file
Jboss 3 2 3 Coyote Can 't re
Tomcat 5, Apache2 and mod jk2 integration problem
JBoss example problem new to J2EE
url string for connecting jboss to oracle
Value attribute of <html:checkbox
javax servlet ServletException: BeanUtils populate
HTTP Status 404 The requested resource is not available
5 0 18: Windows XP Pro vs Windows 2000
 
Map as a return value?

Map as a return value?

2004-01-27       - By Damon Hart-Davis

 Back
Reply:     1     2     3     4     5  

Hi,

1) If the Map is going to passed across a non-local EJB (RMI) boundary then
in theory it will be (deep) copied anyway (unless your J2EE server lets you
turn this off).  So it would be a shame to copy it twice.

2) Rather than copy it, if it's not going to change, return it wrapped in a
Collections.unmodifiableMap() wrapper.  Then its safe and efficient for
local or remote use.

3) If the underlying Map content might change once you've passed a view of
it to the client then you have concurrency and behaviour issues to consider.
You may just have to copy anyway to be safe in this case.

All IMHO; your mileage and my sanity may vary.

Rgds

Damon

-- -- Original Message -- --
From: "Erik Beijnoff" <erik@(protected)>
To: <J2EE-INTEREST@(protected)>
Sent: Tuesday, January 27, 2004 10:06 AM
Subject: Map as a return value?


> Pardon me if you find this question to common to fit into the j2ee
> category.
>
> I suppose this question is impossible to answer with a simple yes or no,
> but I'm looking for standard practices when an object deals with
> collections as return values from a method invocation.
>
> Say that I call some getParameters() method on some object that returns
> a Map of parameters. Should the Map be copied before it is returned so
> that the calling object can't affect the original Map, or should the Map
> be returned by reference?
>
> My spontaneous feeling is that the object shouldn't spill it's internal
> guts around, so the Map should really be a copy of the other Map, but
> what about performance if you have to create and recreate copies of all
> Maps that gets passed around the system?
>
> What are the situations where it is acceptable, or even wanted for an
> object to return a shared Map? Or do you find it acceptable, from a
> performance point of view to hand out the Map as long as you "know" that
> you will only read the Map?
>
> I know that there are different situation where different rules apply,
> of course, but what I'm looking for is what these different situations
> really are. I've found my self contemplating this implementation detail
> quite often recently, and often tended to go with the shared object
> approach, propably out of scare to affect performance.
>
> Regards Erik Beijnoff
>
>
===========================================================================
> To unsubscribe, send email to listserv@(protected) and include in the
body
> of the message "signoff J2EE-INTEREST".  For general help, send email to
> listserv@(protected) and include in the body of the message "help".
>
>

===========================================================================
To unsubscribe, send email to listserv@(protected) and include in the body
of the message "signoff J2EE-INTEREST".  For general help, send email to
listserv@(protected) and include in the body of the message "help".



©2008 junlu.com - Jax Systems, LLC, U.S.A.