TCP Problem

I am running a Java Client on Solaris 9 which communicates with the Server using TCP/IP.

The client transmits a FIN packet to server. The server sends a ACK, FIN enters LAST_ACK state and then waits for ACK from client. The client did not respond back leaving the server in LAST_ACK itself. Also the Client connects with the server on a fixed port, so the new connection attempt also results in a failure.

The point is, the client is written not to close the connection. I am not sure how and why the client sends a FIN. One more thing is the client is killed every day but this might not lead to this problem as ideally on killing, only a RST shud be sent to the server. The client is written on Java which will properly close the connection on exit.

My question is, Is der are any TCP/IP issue with the solaris stack which lead me to this problem? The server side is clean(even LAST_ACK sockets are teared down after 1000 seconds after which connection attempt is successful).