I recently had SQL Developer updated from 4.1.something to the latest 17.4 (w/ included jdk) on a fairly locked down work machine. After importing my previous connections (all currently basic to Oracle 12.1 databases), I was no longer able to connect, getting the java error below. After playing around, it seems like a driver compatibility issues. I renamed the included ojdbc to ojdbc8.jar.included and added the latest ojdbc7.jar to the same directory. That seemed to correct things.
I have most versions of SQL Developer up to 17.4 running on a home laptop and I believe I've been able to connect to 11g and 12c databases without issue. I just assumed that whatever the latest drivers included were backwards compatible. Is that not the case? If they are backwards compatible, is there a setting somewhere that I'm missing? Seems off that I would need separate installs to target different DB versions if we had some 12.2 instances.
java.nio.BufferUnderflowException
at java.nio.HeapByteBuffer.get(HeapByteBuffer.java:151)
at java.nio.ByteBuffer.get(ByteBuffer.java:715)
at oracle.net.ns.NIOAcceptPacket.readPayloadBuffer(NIOAcceptPacket.java:167)
at oracle.net.ns.NIOPacket.readNIOPacket(NIOPacket.java:282)
at oracle.net.ns.NSProtocolNIO.negotiateConnection(NSProtocolNIO.java:118)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:317)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1438)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:518)
at oracle.jdbc.driver.PhysicalConnection.connect(PhysicalConnection.java:688)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:39)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:691)
at oracle.jdeveloper.db.adapter.AbstractConnectionCreator.getConnection(AbstractConnectionCreator.java:229)
at oracle.dbtools.raptor.standalone.connection.RaptorConnectionCreator.getConnectionImpl(RaptorConnectionCreator.java:392)
at oracle.dbtools.raptor.standalone.connection.RaptorConnectionCreator.getConnection(RaptorConnectionCreator.java:118)
at oracle.dbtools.raptor.dialogs.conn.ConnectionPrompt.promptForPassword(ConnectionPrompt.java:67)
at oracle.jdevimpl.db.adapter.DatabaseProviderHelper$PasswordPrompter.promptForPassword(DatabaseProviderHelper.java:422)
at oracle.jdevimpl.db.DBConnAddin$2.promptForPassword(DBConnAddin.java:98)
at oracle.jdeveloper.db.adapter.DatabaseProvider.getConnection(DatabaseProvider.java:434)
at oracle.jdeveloper.db.adapter.DatabaseProvider.getConnection(DatabaseProvider.java:365)
at oracle.jdevimpl.db.adapter.CAConnectionCreator.createConnectionImpl(CAConnectionCreator.java:68)
at oracle.javatools.db.DatabaseFactory.createConnection(DatabaseFactory.java:838)
at oracle.javatools.db.DatabaseFactory.createDatabase(DatabaseFactory.java:282)
at oracle.jdeveloper.db.DatabaseConnections.getDatabase(DatabaseConnections.java:837)
at oracle.dbtools.raptor.utils.Connections$ConnectionInfo.getDatabase(Connections.java:283)
at oracle.dbtools.raptor.utils.Connections.getConnection(Connections.java:1229)
at oracle.dbtools.raptor.utils.Connections.getConnection(Connections.java:1215)
at oracle.dbtools.raptor.navigator.db.DatabaseConnection.openConnectionImpl(DatabaseConnection.java:146)
at oracle.dbtools.raptor.navigator.db.DatabaseConnection.openConnectionImpl(DatabaseConnection.java:41)
at oracle.dbtools.raptor.navigator.db.BaseConnectionNode.getConnection(BaseConnectionNode.java:46)
at oracle.dbtools.raptor.navigator.db.impl.DatabaseTreeNode.getObjectFactory(DatabaseTreeNode.java:90)
at oracle.dbtools.raptor.navigator.db.impl.DatabaseTreeNode$LoadTask.doWork(DatabaseTreeNode.java:145)
at oracle.dbtools.raptor.navigator.db.impl.DatabaseTreeNode$LoadTask.doWork(DatabaseTreeNode.java:119)
at oracle.dbtools.raptor.backgroundTask.RaptorTask.call(RaptorTask.java:199)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask.run(RaptorTaskManager.java:702)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)