Thread.start() without run() invoke
We got interesting problem during migration one old application from java 1.4.2_08 to the java 1.5.0_06. The principal code of application is:
publicclass objServextends Thread{
....
publicvoid run(){
...
while (!End){
clientSocket = ServSocket.accept();
client =new objClient(this, clientSocket);
logger.sendInfo("client created. "+client.getName());
client.start();
logger.sendInfo("client start done. "+client.getName());
....
}
....
}
publicstaticvoid main(String args[]){
....
pkvserv serv =new objServ(hostName, port);
serv.start();
....
}
}
publicclass objClientextends Thread{
....
// client method run()
publicvoid run(){
printlog("Thread run started. "+this..getName());
.....
}
}
The application listen port and generate the client thread for each connection.
After 10 days of using this application and generating and successful processing and termination of near 340000 client threads we got a situation when client thread was created, method start() was invoked, but the client method run() was never invoke.
Does anybody have any idea why this situation can happen? We have memory monitoring on that application and it抯 was not a memory problem.

