Re: applicability of static methods in web applications?
Arne Vajh?j wrote:
Tom Hawtin wrote:
Arne Vajh?j wrote:
vishist wrote:
public static List getId(){
return list;
}
Now, I know that this method works in a threaded environment since all
these methods fall in thread scope.
That code looks very thread unsafe to me.
You can't tell from a fragment.
private static final List list =
Collections.unmodifiableList(Arrays.asList(new String[] {
"A", "B", "C"
}));
private static final List list = new Vector();
The original post stated that the code was in DB layer.
A static method returning a static field in a DB layer
does look thread unsafe.
It is possible to create absurd examples where it is
not, but I do not see much point in that.
Arne
I've been following newgroups recently and never knew that there will be
responses to my question after couple of days. I'm sorry.
Now, to Arne's comment,
Things are working at our end (though it might be absurd). The variables
declared in static method fall under thread scope right?. The DB
Connection, statement, resultset all fall in the same static method.
public static List getMyResultSet(){
Connection conn = getConnection();
PreparedStatement pStatement = conn.prepareStatement();
ResultSet rSet = pStatement.executeQuery();
List resultSetObjectList = new ArrayList();
...................
...................//Populating resultSetObjectList here
...................
return resultSetObjectList;
}
this is how our code is written and is working now. We invoke these
methods statically from the servlet prefixing the Class name. I know
that this is not a good style. Infact that was my question:
----isn't there any steadfast rule that says you shouldn't create static
methods that has business logic in them?.
Please comment!
vishist.