Howdy,
You may want to worry more about the HashMap's put() calls than the
get() calls.  HashMap in itself is NOT synchronized, Hashtable is.  If
you think there can be multiple threads writing to this hint map, then
those are the ones you should consider synchronizing.  (Or using
Hashtable).

It's also a big of a different story if you're iterating over or
otherwise manipulating the key or entry set of the hint map.  If you're
only using get() calls, it's a bit easier.  The iterators are fail-fast,
so if something modifies your hint map while you're iterating, you'll
get a ConcurrentModificationException.  But it seems like you're just
getting, so that's not a concern.

And this whole thing is not really a tomcat issue ;)  Unless you were
thinking of using SingleThreadModel for something in this webapp that
affects the hint bean?

Yoav Shapira
ChemInformatics


>-----Original Message-----
>From: Michael Molloy [mailto:[EMAIL PROTECTED]]
>Sent: Wednesday, May 15, 2002 3:09 PM
>To: [EMAIL PROTECTED]
>Subject: To synchronize or not?
>
>I've working on an application that will be used by 150 people
>concurrently.
>When Tomcat starts up, I've got a servlet that creates a class that
>contains
>about 800 html input tag hints. For example, when a user clicks into an
>input
>field, the hint for that field displays in the status bar of their
browser.
>
>Everytime a user logs in, s/he gets a LoginBean class. This class has a
>reference to the HintBean class. All of the html pages have forms that
>include in their tags a getProperty such as the following:
>
><jsp:getProperty name="loginBean" property="childFirstName" />
>
>The relevant parts of LoginBean are as follows:
>
>public LoginBean(HintBeant hints) {
>  this.hints = hints;
>}
>public String getChildFirstName() {
>  return hints.get("childFirstName");
>}
>
>So, everyone has their own class with the specific getters for each
text
>field hint, but all of those getters point to a single class (HintBean)
>that
>is in the application scope.
>
>All of the hints are stored in a HashMap inside the HintBean, so the
above
>method just calls HashMap.get(String s) to return the hint.
>
>My question is, should I make HintBean.get(String s) synchronized? Or
is
>there no chance that anyone will get the wrong text? And if not, why
not?
>
>Thanks for any help.
>--Michael
>
>--
>To unsubscribe, e-mail:   <mailto:tomcat-user-
>[EMAIL PROTECTED]>
>For additional commands, e-mail: <mailto:tomcat-user-
>[EMAIL PROTECTED]>


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

Reply via email to