Similar exceptions are :
1. java.io.IOException: Io exception: Unexpected packet
2. java.sql.SQLException: Protocol violation
3. java.sql.SQLException: Io exception: Bad packet type
4. java.sql.SQLException: Bigger type length than Maximum
5. java.sql.SQLException: Io exception: Invalid Packet Lenght
6. java.sql.SQLException: Closed Connection
7. java.sql.SQLException: Closed Statement
8. java.sql.SQLException: Refcursor value is invalid
9. java.sql.SQLException: Io exception: Size Data Unit (SDU) mismatch
10. java.sql.SQLException: Must be logged on to server
All these occur almost with same reason. It is caused when more than one thread is trying to make simultaneous use of the thin Oracle JDBC driver via the same Connection object.
To correct this problem we have to ensure that only one thread of execution was making use of the JDBC driver at a time through the same Connection OR upgrade to a later version of the driver.
Further investigation says, with JDBC driver version is 18.104.22.168.0 it is reproducible and 22.214.171.124.0 is free from this. Any ways, it is advisable to go with latest jdbc driver version i.e. 10.2.0.4 which can solve this issue.
Multi-thread programming needs this as quick note.