Re: Sorry for disturbing this page.....I need help Again
I don't have your answer yet, but I do have advice about posting.
1) Fix your indentation and follow the conventions for it.
If you want people to help you analyze your code, you should make the effor=
t to make your code readable.
2) The subject line should summarize the problem or insight contained in th=
e body.
"sorry for disturbing this page" is a weak title. It says nothing about wh=
at you're going to ask or say, there's no need to apologize anyway, and thi=
s isn't a "page".
2) Follow the Java code conventions.
Class names should start with an upper-case letter, non-constant variables =
and methods should start with a lower-case letter.
If you want people to help you analyze your code, you should make the effor=
t to make your code readable.
The Java code conventions are available on the Oracle website.
3) Constructors are for construction.
You do a lot of logic in the constructor. That's a very bad practice. You=
are doing logic in an incomplete object. That can lead to weird bugs. Pr=
obably not the one you're facing now, but why take chances?
Constructors should only do the business of creating a complete object in a=
valid initial state. That can involve some hairy logic occasionally, for =
example opening a remote resource, but that should be rare and only when ju=
stified in terms of establishing a valid initial state.
Everything else, nearly all action, should happen only after the constructo=
r completes.
This is especially important in multi-threaded code such as yours. All kin=
ds of concurrency guarantees are null and void until construction completes=
..
4) Don't declare unnecessary variables, and don't declare them only at the =
front.
Variables, if and when needed, should be declared in the narrowest appropri=
ate scope and near the point of use.
This is covered in Joshua Bloch's /Effective Java/ (2nd ed.), which no one =
should skip if they dare to call themselves a Java programmer.
These cleanup steps at a minimum will help make it easier to spot where thi=
ngs go wrong.
--
Lew