I have a Java process/app. When I run /usr/sbin/lsof -p on that java process, I see a lot of \"can\'t identify protocol\". Also, interestingly, File descriptors(FDs) a
When lsof prints "Can't identify protocol", this usually relates to sockets (it should also say 'sock' in the relevant output lines).
So, somewhere in your code you are probably connecting sockets and not closing them properly (perhaps you need a finally block).
I suggest you step through your code with a debugger (easiest to use your IDE, potentially with a remote debugger, if necesssary), while running lsof side-by-side. You should eventually be able to see which thread / line of code is creating these File Descriptors.
See point 10.2.2 of this FAQ for more details about the Lsof output.
Lsof prints can't identify protocol
for half-open TCP/IP connections: https://idea.popcount.org/2012-12-09-lsof-cant-identify-protocol/
Maybe you observe bug in JVM 1.6 with leak of connections when you use SSL and hostname: http://bugs.sun.com/view_bug.do?bug_id=6745052