Index: simplerunner/src/main/java/geniusweb/simplerunner/NegoRunner.java
===================================================================
--- simplerunner/src/main/java/geniusweb/simplerunner/NegoRunner.java	(revision 14)
+++ simplerunner/src/main/java/geniusweb/simplerunner/NegoRunner.java	(revision 18)
@@ -7,4 +7,5 @@
 import java.util.logging.Level;
 
+import com.fasterxml.jackson.core.JsonProcessingException;
 import com.fasterxml.jackson.databind.ObjectMapper;
 
@@ -13,6 +14,6 @@
 import geniusweb.protocol.NegoProtocol;
 import geniusweb.protocol.NegoSettings;
+import geniusweb.protocol.NegoState;
 import geniusweb.protocol.partyconnection.ProtocolToPartyConnFactory;
-import tudelft.utilities.logging.ReportToLogger;
 import tudelft.utilities.logging.Reporter;
 
@@ -27,5 +28,5 @@
 	private final NegoProtocol protocol;
 	private final ProtocolToPartyConnFactory connectionfactory;
-	private final Reporter log;
+	protected final Reporter log;
 	private final static ObjectMapper jackson = new ObjectMapper();
 
@@ -55,10 +56,22 @@
 
 	protected void stop() {
-		if (protocol.getState().getError() != null) {
-			log.log(Level.WARNING, "protocol terminated abnormally",
-					protocol.getState().getError());
-		} else {
-			log.log(Level.INFO,
-					"protocol ended normally: " + protocol.getState());
+		Level level = protocol.getState().getError() == null ? Level.INFO
+				: Level.WARNING;
+		logFinal(level, protocol.getState());
+	}
+
+	/**
+	 * Separate so that we can intercept this when mocking, as this will crash
+	 * on mocks
+	 * 
+	 * @param level
+	 * @param state
+	 */
+	protected void logFinal(Level level, NegoState state) {
+		try {
+			log.log(level, "protocol ended normally: "
+					+ jackson.writeValueAsString(protocol.getState()));
+		} catch (JsonProcessingException e) {
+			e.printStackTrace();
 		}
 	}
@@ -75,6 +88,5 @@
 
 		NegoRunner runner = new NegoRunner(settings,
-				new ClassPathConnectionFactory(),
-				new ReportToLogger("sessionrunner"));
+				new ClassPathConnectionFactory(), new StdOutReporter());
 		runner.run();
 	}
@@ -90,2 +102,16 @@
 	}
 }
+
+class StdOutReporter implements Reporter {
+
+	@Override
+	public void log(Level arg0, String arg1) {
+		System.out.println(arg0 + ":" + arg1);
+	}
+
+	@Override
+	public void log(Level arg0, String arg1, Throwable arg2) {
+		System.out.println(arg0 + ">" + arg1);
+	}
+
+}
Index: simplerunner/src/test/java/geniusweb/simplerunner/SessionRunnerTest.java
===================================================================
--- simplerunner/src/test/java/geniusweb/simplerunner/SessionRunnerTest.java	(revision 14)
+++ simplerunner/src/test/java/geniusweb/simplerunner/SessionRunnerTest.java	(revision 18)
@@ -17,4 +17,5 @@
 
 import geniusweb.protocol.CurrentNegoState;
+import geniusweb.protocol.NegoState;
 import geniusweb.protocol.ProtocolException;
 import geniusweb.protocol.partyconnection.ProtocolToPartyConnFactory;
@@ -22,5 +23,4 @@
 import geniusweb.protocol.session.SessionSettings;
 import geniusweb.protocol.session.SessionState;
-import geniusweb.simplerunner.NegoRunner;
 import tudelft.utilities.listener.Listener;
 import tudelft.utilities.logging.ReportToLogger;
@@ -59,6 +59,5 @@
 				ProtocolToPartyConnFactory.class);
 
-		NegoRunner runner = spy(
-				new NegoRunner(settings, factory, logger));
+		NegoRunner runner = spy(new NegoRunner(settings, factory, logger));
 		runner.run();
 
@@ -82,6 +81,10 @@
 		ProtocolToPartyConnFactory factory = mock(
 				ProtocolToPartyConnFactory.class);
-		NegoRunner runner = spy(
-				new NegoRunner(settings, factory, logger));
+		NegoRunner runner = spy(new NegoRunner(settings, factory, logger) {
+			@Override
+			protected void logFinal(Level level, NegoState state) {
+				log.log(level, state.toString());
+			}
+		});
 		ArgumentCaptor<Listener> listener = ArgumentCaptor
 				.forClass(Listener.class);
@@ -109,6 +112,10 @@
 		ProtocolToPartyConnFactory factory = mock(
 				ProtocolToPartyConnFactory.class);
-		NegoRunner runner = spy(
-				new NegoRunner(settings, factory, logger));
+		NegoRunner runner = spy(new NegoRunner(settings, factory, logger) {
+			@Override
+			protected void logFinal(Level level, NegoState state) {
+				log.log(level, state.toString());
+			}
+		});
 		ArgumentCaptor<Listener> listener = ArgumentCaptor
 				.forClass(Listener.class);
@@ -120,6 +127,5 @@
 		verify(runner, times(1)).stop();
 		// check that the protocol error is logged properly
-		verify(logger, times(1)).log(eq(Level.WARNING), any(String.class),
-				eq(PROTOCOL_EXC));
+		verify(logger, times(1)).log(eq(Level.WARNING), any(String.class));
 	}
 
Index: simplerunner/src/test/resources/settings2.json
===================================================================
--- simplerunner/src/test/resources/settings2.json	(revision 14)
+++ simplerunner/src/test/resources/settings2.json	(revision 18)
@@ -13,4 +13,5 @@
 			}
 		}
+		
 	}
 }
Index: simplerunner/src/test/resources/shaoptoursettings.json
===================================================================
--- simplerunner/src/test/resources/shaoptoursettings.json	(revision 14)
+++ simplerunner/src/test/resources/shaoptoursettings.json	(revision 18)
@@ -59,5 +59,6 @@
 				}
 			}
-		}
+		},
+		"numberTournaments":1
 	}
 }
