Skip to content

Commit 229a820

Browse files
committed
Add condition to log only if fine level is loggable
Even if FINE level is not loggable String.format() works every time and tries to format string with all the events. Sometimes it causes OutOfMemory exceptions.
1 parent 8f8c138 commit 229a820

File tree

4 files changed

+46
-15
lines changed

4 files changed

+46
-15
lines changed

src/main/java/io/socket/client/IO.java

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33

44
import io.socket.parser.Parser;
55

6+
import java.util.logging.Level;
67
import javax.net.ssl.HostnameVerifier;
78
import javax.net.ssl.SSLContext;
89
import java.net.URI;
@@ -72,11 +73,15 @@ public static Socket socket(URI uri, Options opts) {
7273
Manager io;
7374

7475
if (newConnection) {
75-
logger.fine(String.format("ignoring socket cache for %s", source));
76+
if (logger.isLoggable(Level.FINE)) {
77+
logger.fine(String.format("ignoring socket cache for %s", source));
78+
}
7679
io = new Manager(source, opts);
7780
} else {
7881
if (!managers.containsKey(id)) {
79-
logger.fine(String.format("new io instance for %s", source));
82+
if (logger.isLoggable(Level.FINE)) {
83+
logger.fine(String.format("new io instance for %s", source));
84+
}
8085
managers.putIfAbsent(id, new Manager(source, opts));
8186
}
8287
io = managers.get(id);

src/main/java/io/socket/client/Manager.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,10 +250,14 @@ public Manager open(final OpenCallback fn) {
250250
EventThread.exec(new Runnable() {
251251
@Override
252252
public void run() {
253-
logger.fine(String.format("readyState %s", Manager.this.readyState));
253+
if (logger.isLoggable(Level.FINE)) {
254+
logger.fine(String.format("readyState %s", Manager.this.readyState));
255+
}
254256
if (Manager.this.readyState == ReadyState.OPEN || Manager.this.readyState == ReadyState.OPENING) return;
255257

256-
logger.fine(String.format("opening %s", Manager.this.uri));
258+
if (logger.isLoggable(Level.FINE)) {
259+
logger.fine(String.format("opening %s", Manager.this.uri));
260+
}
257261
Manager.this.engine = new Engine(Manager.this.uri, Manager.this.opts);
258262
final io.socket.engineio.client.Socket socket = Manager.this.engine;
259263
final Manager self = Manager.this;
@@ -453,7 +457,9 @@ public void call(Object... objects) {
453457
}
454458

455459
/*package*/ void packet(Packet packet) {
456-
logger.fine(String.format("writing packet %s", packet));
460+
if (logger.isLoggable(Level.FINE)) {
461+
logger.fine(String.format("writing packet %s", packet));
462+
}
457463
final Manager self = this;
458464

459465
if (!self.encoding) {

src/main/java/io/socket/client/Socket.java

Lines changed: 21 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,9 @@ private void onopen() {
273273
}
274274

275275
private void onclose(String reason) {
276-
logger.fine(String.format("close (%s)", reason));
276+
if (logger.isLoggable(Level.FINE)) {
277+
logger.fine(String.format("close (%s)", reason));
278+
}
277279
this.connected = false;
278280
this.id = null;
279281
this.emit(EVENT_DISCONNECT, reason);
@@ -327,7 +329,9 @@ private void onpacket(Packet<?> packet) {
327329

328330
private void onevent(Packet<JSONArray> packet) {
329331
List<Object> args = new ArrayList<Object>(Arrays.asList(toArray(packet.data)));
330-
logger.fine(String.format("emitting event %s", args));
332+
if (logger.isLoggable(Level.FINE)) {
333+
logger.fine(String.format("emitting event %s", args));
334+
}
331335

332336
if (packet.id >= 0) {
333337
logger.fine("attaching ack callback to event");
@@ -354,7 +358,9 @@ public void call(final Object... args) {
354358
public void run() {
355359
if (sent[0]) return;
356360
sent[0] = true;
357-
logger.fine(String.format("sending ack %s", args.length != 0 ? args : null));
361+
if (logger.isLoggable(Level.FINE)) {
362+
logger.fine(String.format("sending ack %s", args.length != 0 ? args : null));
363+
}
358364

359365
JSONArray jsonArgs = new JSONArray();
360366
for (Object arg : args) {
@@ -375,10 +381,14 @@ public void run() {
375381
private void onack(Packet<JSONArray> packet) {
376382
Ack fn = this.acks.remove(packet.id);
377383
if (fn != null) {
378-
logger.fine(String.format("calling ack %s with %s", packet.id, packet.data));
384+
if (logger.isLoggable(Level.FINE)) {
385+
logger.fine(String.format("calling ack %s with %s", packet.id, packet.data));
386+
}
379387
fn.call(toArray(packet.data));
380388
} else {
381-
logger.fine(String.format("bad ack %s", packet.id));
389+
if (logger.isLoggable(Level.FINE)) {
390+
logger.fine(String.format("bad ack %s", packet.id));
391+
}
382392
}
383393
}
384394

@@ -404,7 +414,9 @@ private void emitBuffered() {
404414
}
405415

406416
private void ondisconnect() {
407-
logger.fine(String.format("server disconnect (%s)", this.nsp));
417+
if (logger.isLoggable(Level.FINE)) {
418+
logger.fine(String.format("server disconnect (%s)", this.nsp));
419+
}
408420
this.destroy();
409421
this.onclose("io server disconnect");
410422
}
@@ -431,7 +443,9 @@ public Socket close() {
431443
@Override
432444
public void run() {
433445
if (Socket.this.connected) {
434-
logger.fine(String.format("performing disconnect (%s)", Socket.this.nsp));
446+
if (logger.isLoggable(Level.FINE)) {
447+
logger.fine(String.format("performing disconnect (%s)", Socket.this.nsp));
448+
}
435449
Socket.this.packet(new Packet(Parser.DISCONNECT));
436450
}
437451

src/main/java/io/socket/parser/Parser.java

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,9 @@ public static class Encoder {
7777
public Encoder() {}
7878

7979
public void encode(Packet obj, Callback callback) {
80-
logger.fine(String.format("encoding packet %s", obj));
80+
if (logger.isLoggable(Level.FINE)) {
81+
logger.fine(String.format("encoding packet %s", obj));
82+
}
8183

8284
if (BINARY_EVENT == obj.type || BINARY_ACK == obj.type) {
8385
encodeAsBinary(obj, callback);
@@ -116,7 +118,9 @@ private String encodeAsString(Packet obj) {
116118
str.append(obj.data);
117119
}
118120

119-
logger.fine(String.format("encoded %s as %s", obj, str));
121+
if (logger.isLoggable(Level.FINE)) {
122+
logger.fine(String.format("encoded %s as %s", obj, str));
123+
}
120124
return str.toString();
121125
}
122126

@@ -233,7 +237,9 @@ private static Packet decodeString(String str) {
233237
}
234238
}
235239

236-
logger.fine(String.format("decoded %s as %s", str, p));
240+
if (logger.isLoggable(Level.FINE)) {
241+
logger.fine(String.format("decoded %s as %s", str, p));
242+
}
237243
return p;
238244
}
239245

0 commit comments

Comments
 (0)