re: "1. is it a right way to add this timeout. what's any side effect?"
Yes, it is. In a very early version of Remoting, "socketTimeout" was used instead. Setting "timeout" will cause that value to be passed to all read() calls on an InputStream obtained from a Socket.
re: "2. why jboss hasn't a default timeout value for this?"
Actually, the socket transport has a default read() timeout of 30 minutes. I'm not sure why you are seeing 0.
-Ron