@@ -235,7 +235,7 @@ public static class Builder<T> {
235
235
protected boolean validateMessages ;
236
236
protected Consumer <GsonBuilder > configureGson ;
237
237
protected ClassLoader classLoader ;
238
- protected PrintWriter messageTracer ;
238
+ protected MessageTracer messageTracer ;
239
239
240
240
public Builder <T > setLocalService (Object localService ) {
241
241
this .localServices = Collections .singletonList (localService );
@@ -294,7 +294,7 @@ public Builder<T> validateMessages(boolean validate) {
294
294
295
295
public Builder <T > traceMessages (PrintWriter tracer ) {
296
296
if (tracer != null ) {
297
- this .messageTracer = tracer ;
297
+ this .messageTracer = new MessageTracer ( tracer ) ;
298
298
}
299
299
return this ;
300
300
}
@@ -317,12 +317,17 @@ public Launcher<T> create() {
317
317
318
318
// Create the JSON handler, remote endpoint and remote proxy
319
319
MessageJsonHandler jsonHandler = createJsonHandler ();
320
+
321
+ if (messageTracer != null ) {
322
+ messageTracer .setJsonHandler (jsonHandler );
323
+ }
324
+
320
325
RemoteEndpoint remoteEndpoint = createRemoteEndpoint (jsonHandler );
321
326
T remoteProxy = createProxy (remoteEndpoint );
322
327
323
328
// Create the message processor
324
329
StreamMessageProducer reader = new StreamMessageProducer (input , jsonHandler , remoteEndpoint );
325
- MessageConsumer messageConsumer = wrapMessageConsumer (remoteEndpoint , jsonHandler );
330
+ MessageConsumer messageConsumer = wrapMessageConsumer (remoteEndpoint );
326
331
ConcurrentMessageProcessor msgProcessor = createMessageProcessor (reader , messageConsumer , remoteProxy );
327
332
ExecutorService execService = executorService != null ? executorService : Executors .newCachedThreadPool ();
328
333
return createLauncher (execService , remoteProxy , remoteEndpoint , msgProcessor );
@@ -344,7 +349,7 @@ protected MessageJsonHandler createJsonHandler() {
344
349
*/
345
350
protected RemoteEndpoint createRemoteEndpoint (MessageJsonHandler jsonHandler ) {
346
351
MessageConsumer outgoingMessageStream = new StreamMessageConsumer (output , jsonHandler );
347
- outgoingMessageStream = wrapMessageConsumer (outgoingMessageStream , jsonHandler );
352
+ outgoingMessageStream = wrapMessageConsumer (outgoingMessageStream );
348
353
Endpoint localEndpoint = ServiceEndpoints .toEndpoint (localServices );
349
354
RemoteEndpoint remoteEndpoint ;
350
355
if (exceptionHandler == null )
@@ -380,10 +385,10 @@ protected Launcher<T> createLauncher(ExecutorService execService, T remoteProxy,
380
385
return new StandardLauncher <T >(execService , remoteProxy , remoteEndpoint , msgProcessor );
381
386
}
382
387
383
- protected MessageConsumer wrapMessageConsumer (MessageConsumer consumer , MessageJsonHandler jsonHandler ) {
388
+ protected MessageConsumer wrapMessageConsumer (MessageConsumer consumer ) {
384
389
MessageConsumer result = consumer ;
385
390
if (messageTracer != null ) {
386
- result = new MessageTracer ( messageTracer , jsonHandler ) .apply (consumer );
391
+ result = messageTracer .apply (consumer );
387
392
}
388
393
if (validateMessages ) {
389
394
result = new ReflectiveMessageValidator (result );
0 commit comments