I had this same problem, after moving a server from one subnet to another.
I had forgotten to update /etc/hosts with the new IP address, and got this same error.
Glassfish was obviously tying to bind to the address in /etc/hosts instead of the actual network interface.
When it couldn't do that, I got this "admin port 4848 already used" error.
I spent about 15 minutes checking with netstat / lsof and couldn't find anything using that port.
I also checked for the Java process using ps and Glassfish wasn't even running!
This appears to be poorly written software, in that it can't present a decent error message. Why couldn't it simply state something like "unable to bind to IP x.x.x.x"? Instead of issuing this stupidly obscure error message?
Apparently it doesn't even check the processes to see if it is running!
[Message sent by forum member 'tonyar' (tony_at_erudine.com)]
http://forums.java.net/jive/thread.jspa?messageID=384267