Skip to content

Commit 71c1188

Browse files
committed
Fixed bug where NJS-112 internal error was thrown intermittently and incorrectly
1 parent 51fda29 commit 71c1188

File tree

3 files changed

+10
-8
lines changed

3 files changed

+10
-8
lines changed

doc/src/release_notes.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ Thin Mode Changes
2020
#) Improve error message when an internal error handler fails and a connection
2121
is no longer usable.
2222

23+
#) Fixed bug where NJS-112 is thrown intermittently with some connections.
24+
2325
node-oracledb `v6.0.2 <https://github.com/oracle/node-oracledb/compare/v6.0.1...v6.0.2>`__ (27 Jun 2023)
2426
--------------------------------------------------------------------------------------------------------
2527

lib/thin/protocol/messages/base.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -230,8 +230,8 @@ class Message {
230230
|| (opcode === constants.TNS_SERVER_PIGGYBACK_TRACE_EVENT)) {
231231
// pass
232232
} else if (opcode === constants.TNS_SERVER_PIGGYBACK_OS_PID_MTS) {
233-
const nb = buf.readUB2();
234-
buf.skipBytes(nb + 1);
233+
buf.skipUB2();
234+
buf.skipBytesChunked();
235235
} else if (opcode === constants.TNS_SERVER_PIGGYBACK_SYNC) {
236236
buf.skipUB2(); // skip number of DTYs
237237
buf.skipUB1(); // skip length of DTYs
@@ -240,11 +240,11 @@ class Message {
240240
for (let i = 0; i < num_elements; i++) {
241241
let temp16 = buf.readUB2();
242242
if (temp16 > 0) { // skip key
243-
buf.skipBytes(temp16 + 1);
243+
buf.skipBytesChunked();
244244
}
245245
temp16 = buf.readUB2();
246246
if (temp16 > 0) { // skip value
247-
buf.skipBytes(temp16 + 1);
247+
buf.skipBytesChunked();
248248
}
249249
buf.skipUB2(); // skip flags
250250
buf.skipUB4(); // skip overall flags
@@ -271,11 +271,11 @@ class Message {
271271
for (let i = 0; i < num_elements; ++i) {
272272
let temp16 = buf.readUB2();
273273
if (temp16 > 0) { // skip key
274-
buf.skipBytes(temp16 + 1);
274+
buf.skipBytesChunked();
275275
}
276276
temp16 = buf.readUB2();
277277
if (temp16 > 0) { // skip value
278-
buf.skipBytes(temp16 + 1);
278+
buf.skipBytesChunked();
279279
}
280280
buf.skipUB2(); // skip flags
281281
}

lib/thin/protocol/messages/withData.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -139,15 +139,15 @@ class MessageWithData extends Message {
139139

140140
let numBytes = buf.readUB4();
141141
if (numBytes > 0) {
142-
buf.skipBytes(numBytes + 1); // current date
142+
buf.skipBytesChunked(); // current date
143143
}
144144
buf.skipUB4(); // dcbflag
145145
buf.skipUB4(); // dcbmdbz
146146
buf.skipUB4(); // dcbmnpr
147147
buf.skipUB4(); // dcbmxpr
148148
numBytes = buf.readUB4();
149149
if (numBytes > 0) {
150-
buf.skipBytes(numBytes + 1);
150+
buf.skipBytesChunked();
151151
}
152152

153153
this.resultSetsToSetup.push(resultSet);

0 commit comments

Comments
 (0)