Add implementation from Assignment 1

This commit is contained in:
Tobias Eidelpes 2020-12-23 11:56:50 +01:00
parent 2ae01910cd
commit acfe3a0b12
64 changed files with 2723 additions and 1726 deletions

View File

@ -41,7 +41,7 @@
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">0.008s</div>
<div class="counter">1m6.01s</div>
<p>duration</p>
</div>
</td>
@ -76,116 +76,28 @@
<a name="inbox_mulipleMails_showsAllInboxDataCorrectly"></a>
<h3 class="failures">inbox_mulipleMails_showsAllInboxDataCorrectly</h3>
<span class="code">
<pre>java.lang.NumberFormatException: For input string: &quot;port_range+2&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.client.MessageClientMailboxTest.setUp(MessageClientMailboxTest.java:59)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:119)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.base/java.lang.Thread.run(Thread.java:834)
</pre>
</span>
<span class="code">
<pre>java.lang.NullPointerException
at dslab.client.MessageClientMailboxTest.tearDown(MessageClientMailboxTest.java:74)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:119)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.base/java.lang.Thread.run(Thread.java:834)
<pre>org.junit.runners.model.TestTimedOutException: test timed out after 40000 milliseconds
at java.base@11.0.8/jdk.internal.misc.Unsafe.park(Native Method)
at java.base@11.0.8/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)
at java.base@11.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123)
at java.base@11.0.8/java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:458)
at app//dslab.StreamListener.poll(StreamListener.java:34)
at app//dslab.JunitSocketClient.read(JunitSocketClient.java:82)
at app//dslab.JunitSocketClient.sendAndRead(JunitSocketClient.java:108)
at app//dslab.JunitSocketClient.sendAndVerify(JunitSocketClient.java:103)
at app//dslab.client.MessageClientMailboxTest.inbox_mulipleMails_showsAllInboxDataCorrectly(MessageClientMailboxTest.java:121)
at java.base@11.0.8/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base@11.0.8/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base@11.0.8/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base@11.0.8/java.lang.reflect.Method.invoke(Method.java:566)
at app//org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at app//org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at app//org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at app//org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at app//org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at app//org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base@11.0.8/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base@11.0.8/java.lang.Thread.run(Thread.java:834)
</pre>
</span>
</div>
@ -193,116 +105,28 @@
<a name="inbox_singleMail_showsAllInboxDataCorrectly"></a>
<h3 class="failures">inbox_singleMail_showsAllInboxDataCorrectly</h3>
<span class="code">
<pre>java.lang.NumberFormatException: For input string: &quot;port_range+2&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.client.MessageClientMailboxTest.setUp(MessageClientMailboxTest.java:59)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:119)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.base/java.lang.Thread.run(Thread.java:834)
</pre>
</span>
<span class="code">
<pre>java.lang.NullPointerException
at dslab.client.MessageClientMailboxTest.tearDown(MessageClientMailboxTest.java:74)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:119)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.base/java.lang.Thread.run(Thread.java:834)
<pre>org.junit.runners.model.TestTimedOutException: test timed out after 20000 milliseconds
at java.base@11.0.8/jdk.internal.misc.Unsafe.park(Native Method)
at java.base@11.0.8/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)
at java.base@11.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123)
at java.base@11.0.8/java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:458)
at app//dslab.StreamListener.poll(StreamListener.java:34)
at app//dslab.JunitSocketClient.read(JunitSocketClient.java:82)
at app//dslab.JunitSocketClient.sendAndRead(JunitSocketClient.java:108)
at app//dslab.JunitSocketClient.sendAndVerify(JunitSocketClient.java:103)
at app//dslab.client.MessageClientMailboxTest.inbox_singleMail_showsAllInboxDataCorrectly(MessageClientMailboxTest.java:92)
at java.base@11.0.8/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base@11.0.8/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base@11.0.8/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base@11.0.8/java.lang.reflect.Method.invoke(Method.java:566)
at app//org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at app//org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at app//org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at app//org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at app//org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at app//org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base@11.0.8/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base@11.0.8/java.lang.Thread.run(Thread.java:834)
</pre>
</span>
</div>
@ -319,12 +143,12 @@
</thead>
<tr>
<td class="failures">inbox_mulipleMails_showsAllInboxDataCorrectly</td>
<td class="failures">0.004s</td>
<td class="failures">43.009s</td>
<td class="failures">failed</td>
</tr>
<tr>
<td class="failures">inbox_singleMail_showsAllInboxDataCorrectly</td>
<td class="failures">0.004s</td>
<td class="failures">23.005s</td>
<td class="failures">failed</td>
</tr>
</table>
@ -332,14 +156,52 @@
<div id="tab2" class="tab">
<h2>Standard error</h2>
<span class="code">
<pre>Nov 26, 2020 10:42:20 AM dslab.client.MessageClientMailboxTest setUp
<pre>Dec 23, 2020 11:54:45 AM dslab.client.MessageClientMailboxTest setUp
INFO: Creating mailbox server
Nov 26, 2020 10:42:20 AM dslab.client.MessageClientMailboxTest setUp
Dec 23, 2020 11:54:45 AM dslab.mailbox.MailboxServer run
INFO: Creating DMTP and DMAP serverSockets for MailboxServer + dslab.mailbox.MailboxServer@12a79257
Dec 23, 2020 11:54:45 AM dslab.client.MessageClientMailboxTest setUp
INFO: Waiting for mailbox server sockets
Nov 26, 2020 10:42:20 AM dslab.client.MessageClientMailboxTest setUp
Dec 23, 2020 11:54:45 AM dslab.client.MessageClientMailboxTest setUp
INFO: Starting message client
Dec 23, 2020 11:54:45 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@29ceee08
Dec 23, 2020 11:54:48 AM dslab.mailbox.DMTPConnection run
INFO: Split EMail addresses: [trillian@earth.planet]
Dec 23, 2020 11:54:48 AM dslab.mailbox.DMTPConnection run
INFO: Current email address in msg.getTo(): trillian@earth.planet
Dec 23, 2020 11:54:48 AM dslab.mailbox.DMTPConnection run
INFO: Address trillian@earth.planet belongs to this domain earth.planet
Dec 23, 2020 11:54:48 AM dslab.mailbox.DMTPConnection run
INFO: Address trillian@earth.planet belongs to this domain and user exists. Adding address to msg.To() field
Dec 23, 2020 11:54:48 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@27090541
Dec 23, 2020 11:55:28 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@7175fa12
Dec 23, 2020 11:55:28 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@29ceee08
Dec 23, 2020 11:55:28 AM dslab.client.MessageClientMailboxTest setUp
INFO: Creating mailbox server
Nov 26, 2020 10:42:20 AM dslab.client.MessageClientMailboxTest setUp
Dec 23, 2020 11:55:28 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@27090541
Dec 23, 2020 11:55:28 AM dslab.mailbox.MailboxServer run
INFO: Creating DMTP and DMAP serverSockets for MailboxServer + dslab.mailbox.MailboxServer@1a4b8391
Dec 23, 2020 11:55:28 AM dslab.client.MessageClientMailboxTest setUp
INFO: Waiting for mailbox server sockets
Dec 23, 2020 11:55:28 AM dslab.client.MessageClientMailboxTest setUp
INFO: Starting message client
Dec 23, 2020 11:55:28 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@47222a70
Dec 23, 2020 11:55:31 AM dslab.mailbox.DMTPConnection run
INFO: Split EMail addresses: [trillian@earth.planet]
Dec 23, 2020 11:55:31 AM dslab.mailbox.DMTPConnection run
INFO: Current email address in msg.getTo(): trillian@earth.planet
Dec 23, 2020 11:55:31 AM dslab.mailbox.DMTPConnection run
INFO: Address trillian@earth.planet belongs to this domain earth.planet
Dec 23, 2020 11:55:31 AM dslab.mailbox.DMTPConnection run
INFO: Address trillian@earth.planet belongs to this domain and user exists. Adding address to msg.To() field
Dec 23, 2020 11:55:31 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@49e5dce4
</pre>
</span>
</div>
@ -351,7 +213,7 @@ INFO: Waiting for mailbox server sockets
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Nov 26, 2020, 10:42:20 AM</p>
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Dec 23, 2020, 11:55:51 AM</p>
</div>
</div>
</body>

View File

@ -41,7 +41,7 @@
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">0.003s</div>
<div class="counter">15.017s</div>
<p>duration</p>
</div>
</td>
@ -66,6 +66,9 @@
<li>
<a href="#tab1">Tests</a>
</li>
<li>
<a href="#tab2">Standard error</a>
</li>
</ul>
<div id="tab0" class="tab">
<h2>Failed tests</h2>
@ -73,116 +76,26 @@
<a name="startClient_shouldConnectToMailboxServerAndSendStartsecure"></a>
<h3 class="failures">startClient_shouldConnectToMailboxServerAndSendStartsecure</h3>
<span class="code">
<pre>java.lang.NumberFormatException: For input string: &quot;port_range+3&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.client.MessageClientStartupTest.setUp(MessageClientStartupTest.java:37)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:119)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.base/java.lang.Thread.run(Thread.java:834)
</pre>
</span>
<span class="code">
<pre>java.lang.NullPointerException
at dslab.client.MessageClientStartupTest.tearDown(MessageClientStartupTest.java:48)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:119)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.base/java.lang.Thread.run(Thread.java:834)
<pre>org.junit.runners.model.TestTimedOutException: test timed out after 15000 milliseconds
at java.base@11.0.8/jdk.internal.misc.Unsafe.park(Native Method)
at java.base@11.0.8/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
at java.base@11.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:885)
at java.base@11.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1039)
at java.base@11.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1345)
at java.base@11.0.8/java.util.concurrent.CountDownLatch.await(CountDownLatch.java:232)
at app//dslab.client.MessageClientStartupTest.startClient_shouldConnectToMailboxServerAndSendStartsecure(MessageClientStartupTest.java:78)
at java.base@11.0.8/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base@11.0.8/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base@11.0.8/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base@11.0.8/java.lang.reflect.Method.invoke(Method.java:566)
at app//org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at app//org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at app//org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at app//org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at app//org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at app//org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base@11.0.8/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base@11.0.8/java.lang.Thread.run(Thread.java:834)
</pre>
</span>
</div>
@ -199,11 +112,29 @@
</thead>
<tr>
<td class="failures">startClient_shouldConnectToMailboxServerAndSendStartsecure</td>
<td class="failures">0.003s</td>
<td class="failures">15.017s</td>
<td class="failures">failed</td>
</tr>
</table>
</div>
<div id="tab2" class="tab">
<h2>Standard error</h2>
<span class="code">
<pre>Dec 23, 2020 11:54:30 AM dslab.SimpleTcpServer run
INFO: Starting mock server on 11623
Dec 23, 2020 11:54:30 AM dslab.SimpleTcpServer run
INFO: Listening on client connection
Dec 23, 2020 11:54:30 AM dslab.SimpleTcpServer run
INFO: Processing client connection Socket[addr=/127.0.0.1,port=47618,localport=11623]
Dec 23, 2020 11:54:30 AM dslab.SimpleTcpServer run
INFO: Listening on client connection
Dec 23, 2020 11:54:45 AM dslab.SimpleTcpServer close
INFO: Closing server socket
Dec 23, 2020 11:54:45 AM dslab.SimpleTcpServer close
INFO: Closing server socket
</pre>
</span>
</div>
</div>
<div id="footer">
<p>
@ -212,7 +143,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Nov 26, 2020, 10:42:20 AM</p>
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Dec 23, 2020, 11:55:51 AM</p>
</div>
</div>
</body>

View File

@ -29,7 +29,7 @@
</td>
<td>
<div class="infoBox" id="failures">
<div class="counter">4</div>
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
@ -41,7 +41,7 @@
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">12.017s</div>
<div class="counter">13.092s</div>
<p>duration</p>
</div>
</td>
@ -50,8 +50,8 @@
</div>
</td>
<td>
<div class="infoBox failures" id="successRate">
<div class="percent">0%</div>
<div class="infoBox success" id="successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
@ -61,124 +61,13 @@
<div id="tabs">
<ul class="tabLinks">
<li>
<a href="#tab0">Failed tests</a>
<a href="#tab0">Tests</a>
</li>
<li>
<a href="#tab1">Tests</a>
<a href="#tab1">Standard error</a>
</li>
</ul>
<div id="tab0" class="tab">
<h2>Failed tests</h2>
<div class="test">
<a name="acceptDmtpMessage_listDmapMessage"></a>
<h3 class="failures">acceptDmtpMessage_listDmapMessage</h3>
<span class="code">
<pre>java.lang.NumberFormatException: For input string: &quot;port_range+3&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.mailbox.MailboxServerProtocolTest.setUp(MailboxServerProtocolTest.java:31)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</pre>
</span>
</div>
<div class="test">
<a name="dmtpMessage_withUnknownRecipient_returnsError"></a>
<h3 class="failures">dmtpMessage_withUnknownRecipient_returnsError</h3>
<span class="code">
<pre>java.lang.NumberFormatException: For input string: &quot;port_range+3&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.mailbox.MailboxServerProtocolTest.setUp(MailboxServerProtocolTest.java:31)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</pre>
</span>
</div>
<div class="test">
<a name="loginAndLogout_withValidLogin"></a>
<h3 class="failures">loginAndLogout_withValidLogin</h3>
<span class="code">
<pre>java.lang.NumberFormatException: For input string: &quot;port_range+3&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.mailbox.MailboxServerProtocolTest.setUp(MailboxServerProtocolTest.java:31)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</pre>
</span>
</div>
<div class="test">
<a name="login_withInvalidLogin_returnsError"></a>
<h3 class="failures">login_withInvalidLogin_returnsError</h3>
<span class="code">
<pre>java.lang.NumberFormatException: For input string: &quot;port_range+3&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.mailbox.MailboxServerProtocolTest.setUp(MailboxServerProtocolTest.java:31)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</pre>
</span>
</div>
</div>
<div id="tab1" class="tab">
<h2>Tests</h2>
<table>
<thead>
@ -189,27 +78,121 @@
</tr>
</thead>
<tr>
<td class="failures">acceptDmtpMessage_listDmapMessage</td>
<td class="failures">3.002s</td>
<td class="failures">failed</td>
<td class="success">acceptDmtpMessage_listDmapMessage</td>
<td class="success">4.043s</td>
<td class="success">passed</td>
</tr>
<tr>
<td class="failures">dmtpMessage_withUnknownRecipient_returnsError</td>
<td class="failures">3.012s</td>
<td class="failures">failed</td>
<td class="success">dmtpMessage_withUnknownRecipient_returnsError</td>
<td class="success">3.017s</td>
<td class="success">passed</td>
</tr>
<tr>
<td class="failures">loginAndLogout_withValidLogin</td>
<td class="failures">3.002s</td>
<td class="failures">failed</td>
<td class="success">loginAndLogout_withValidLogin</td>
<td class="success">3.018s</td>
<td class="success">passed</td>
</tr>
<tr>
<td class="failures">login_withInvalidLogin_returnsError</td>
<td class="failures">3.001s</td>
<td class="failures">failed</td>
<td class="success">login_withInvalidLogin_returnsError</td>
<td class="success">3.014s</td>
<td class="success">passed</td>
</tr>
</table>
</div>
<div id="tab1" class="tab">
<h2>Standard error</h2>
<span class="code">
<pre>Dec 23, 2020 11:54:14 AM dslab.mailbox.MailboxServerProtocolTest setUp
INFO: Waiting for server sockets to appear
Dec 23, 2020 11:54:14 AM dslab.mailbox.MailboxServer run
INFO: Creating DMTP and DMAP serverSockets for MailboxServer + dslab.mailbox.MailboxServer@241b95b7
Dec 23, 2020 11:54:14 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@1f3c1728
Dec 23, 2020 11:54:14 AM dslab.mailbox.DMTPConnection run
INFO: Split EMail addresses: [trillian@earth.planet]
Dec 23, 2020 11:54:14 AM dslab.mailbox.DMTPConnection run
INFO: Current email address in msg.getTo(): trillian@earth.planet
Dec 23, 2020 11:54:14 AM dslab.mailbox.DMTPConnection run
INFO: Address trillian@earth.planet belongs to this domain earth.planet
Dec 23, 2020 11:54:14 AM dslab.mailbox.DMTPConnection run
INFO: Address trillian@earth.planet belongs to this domain and user exists. Adding address to msg.To() field
Dec 23, 2020 11:54:14 AM dslab.mailbox.DMTPConnection storeMessage
INFO: Storing message from arthur@earth.planet
to trillian@earth.planet
subject hello
data hello from junit
Dec 23, 2020 11:54:14 AM dslab.mailbox.DMTPConnection storeMessage
INFO: storeMessage(): checking if msg 0 arthur@earth.planet hello already exists for recipient trillian@earth.planet
Dec 23, 2020 11:54:14 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@73c9d031
Dec 23, 2020 11:54:14 AM dslab.mailbox.DMAPConnection loginLoop
INFO: User successfully logged in: trillian@earth.planet
Dec 23, 2020 11:54:15 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@6b871b90
Dec 23, 2020 11:54:15 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@6540f948
Dec 23, 2020 11:54:15 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@1f3c1728
Dec 23, 2020 11:54:15 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@6b871b90
Dec 23, 2020 11:54:15 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@73c9d031
Dec 23, 2020 11:54:18 AM dslab.mailbox.MailboxServerProtocolTest setUp
INFO: Waiting for server sockets to appear
Dec 23, 2020 11:54:18 AM dslab.mailbox.MailboxServer run
INFO: Creating DMTP and DMAP serverSockets for MailboxServer + dslab.mailbox.MailboxServer@65f3f723
Dec 23, 2020 11:54:18 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@50d35cb5
Dec 23, 2020 11:54:18 AM dslab.mailbox.DMAPConnection loginLoop
INFO: User successfully logged in: trillian@earth.planet
Dec 23, 2020 11:54:18 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@49562a5
Dec 23, 2020 11:54:18 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@4fc64790
Dec 23, 2020 11:54:18 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@50d35cb5
Dec 23, 2020 11:54:18 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@49562a5
Dec 23, 2020 11:54:21 AM dslab.mailbox.MailboxServerProtocolTest setUp
INFO: Waiting for server sockets to appear
Dec 23, 2020 11:54:21 AM dslab.mailbox.MailboxServer run
INFO: Creating DMTP and DMAP serverSockets for MailboxServer + dslab.mailbox.MailboxServer@520788de
Dec 23, 2020 11:54:21 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@5873049e
Dec 23, 2020 11:54:21 AM dslab.mailbox.DMTPConnection run
INFO: Split EMail addresses: [unknown@earth.planet]
Dec 23, 2020 11:54:21 AM dslab.mailbox.DMTPConnection run
INFO: Current email address in msg.getTo(): unknown@earth.planet
Dec 23, 2020 11:54:21 AM dslab.mailbox.DMTPConnection run
INFO: Address unknown@earth.planet belongs to this domain earth.planet
Dec 23, 2020 11:54:21 AM dslab.mailbox.DMTPConnection run
INFO: Our userStorage in domain earth.planet does not contain user unknown
Dec 23, 2020 11:54:21 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@6b58be8b
Dec 23, 2020 11:54:21 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@5873049e
Dec 23, 2020 11:54:21 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@dc78beb
Dec 23, 2020 11:54:21 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@6b58be8b
Dec 23, 2020 11:54:24 AM dslab.mailbox.MailboxServerProtocolTest setUp
INFO: Waiting for server sockets to appear
Dec 23, 2020 11:54:24 AM dslab.mailbox.MailboxServer run
INFO: Creating DMTP and DMAP serverSockets for MailboxServer + dslab.mailbox.MailboxServer@5d7aadb9
Dec 23, 2020 11:54:24 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@340579b2
Dec 23, 2020 11:54:24 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@6f10dd9e
Dec 23, 2020 11:54:24 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@340579b2
Dec 23, 2020 11:54:24 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@61d72fd4
Dec 23, 2020 11:54:24 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@6f10dd9e
</pre>
</span>
</div>
</div>
<div id="footer">
<p>
@ -218,7 +201,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Nov 26, 2020, 10:42:20 AM</p>
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Dec 23, 2020, 11:55:51 AM</p>
</div>
</div>
</body>

View File

@ -29,7 +29,7 @@
</td>
<td>
<div class="infoBox" id="failures">
<div class="counter">1</div>
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
@ -41,7 +41,7 @@
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">0.003s</div>
<div class="counter">3.007s</div>
<p>duration</p>
</div>
</td>
@ -50,8 +50,8 @@
</div>
</td>
<td>
<div class="infoBox failures" id="successRate">
<div class="percent">0%</div>
<div class="infoBox success" id="successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
@ -61,43 +61,13 @@
<div id="tabs">
<ul class="tabLinks">
<li>
<a href="#tab0">Failed tests</a>
<a href="#tab0">Tests</a>
</li>
<li>
<a href="#tab1">Tests</a>
<a href="#tab1">Standard error</a>
</li>
</ul>
<div id="tab0" class="tab">
<h2>Failed tests</h2>
<div class="test">
<a name="runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly"></a>
<h3 class="failures">runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly</h3>
<span class="code">
<pre>java.lang.NumberFormatException: For input string: &quot;port_range+2&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.mailbox.MailboxServerTest.runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly(MailboxServerTest.java:33)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</pre>
</span>
</div>
</div>
<div id="tab1" class="tab">
<h2>Tests</h2>
<table>
<thead>
@ -108,12 +78,36 @@
</tr>
</thead>
<tr>
<td class="failures">runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly</td>
<td class="failures">0.003s</td>
<td class="failures">failed</td>
<td class="success">runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly</td>
<td class="success">3.007s</td>
<td class="success">passed</td>
</tr>
</table>
</div>
<div id="tab1" class="tab">
<h2>Standard error</h2>
<span class="code">
<pre>Dec 23, 2020 11:54:27 AM dslab.monitoring.MonitoringServerTest runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly
INFO: Starting thread with component dslab.mailbox.MailboxServer@d5e253e
Dec 23, 2020 11:54:27 AM dslab.mailbox.MailboxServer run
INFO: Creating DMTP and DMAP serverSockets for MailboxServer + dslab.mailbox.MailboxServer@d5e253e
Dec 23, 2020 11:54:27 AM dslab.monitoring.MonitoringServerTest runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly
INFO: Waiting for DMTP socket to open on port 11622
Dec 23, 2020 11:54:27 AM dslab.monitoring.MonitoringServerTest runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly
INFO: Waiting for DMAP socket to open on port 11623
Dec 23, 2020 11:54:27 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@50c1e13d
Dec 23, 2020 11:54:27 AM dslab.monitoring.MonitoringServerTest runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly
INFO: Shutting down component dslab.mailbox.MailboxServer@d5e253e
Dec 23, 2020 11:54:27 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@5f003336
Dec 23, 2020 11:54:27 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@50c1e13d
Dec 23, 2020 11:54:30 AM dslab.monitoring.MonitoringServerTest runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly
INFO: Waiting for thread to stop for component dslab.mailbox.MailboxServer@d5e253e
</pre>
</span>
</div>
</div>
<div id="footer">
<p>
@ -122,7 +116,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Nov 26, 2020, 10:42:20 AM</p>
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Dec 23, 2020, 11:55:51 AM</p>
</div>
</div>
</body>

View File

@ -41,7 +41,7 @@
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">3.003s</div>
<div class="counter">4.025s</div>
<p>duration</p>
</div>
</td>
@ -66,6 +66,9 @@
<li>
<a href="#tab1">Tests</a>
</li>
<li>
<a href="#tab2">Standard error</a>
</li>
</ul>
<div id="tab0" class="tab">
<h2>Failed tests</h2>
@ -73,12 +76,18 @@
<a name="sendStartsecure"></a>
<h3 class="failures">sendStartsecure</h3>
<span class="code">
<pre>java.lang.NumberFormatException: For input string: &quot;port_range+3&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.mailbox.MailboxStartsecureTest.setUp(MailboxStartsecureTest.java:31)
<pre>java.lang.AssertionError:
Expected: a string containing &quot;ok DMAP2.0&quot;
but: was &quot;ok DMAP&quot;
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.junit.Assert.assertThat(Assert.java:956)
at org.junit.rules.ErrorCollector$1.call(ErrorCollector.java:65)
at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:78)
at org.junit.rules.ErrorCollector.checkThat(ErrorCollector.java:63)
at org.junit.rules.ErrorCollector.checkThat(ErrorCollector.java:54)
at dslab.JunitSocketClient.assertThat(JunitSocketClient.java:120)
at dslab.JunitSocketClient.verify(JunitSocketClient.java:92)
at dslab.mailbox.MailboxStartsecureTest.sendStartsecure(MailboxStartsecureTest.java:58)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
@ -86,9 +95,58 @@
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</pre>
</span>
<span class="code">
<pre>java.lang.AssertionError:
Expected: a string containing &quot;ok mailbox-earth-planet&quot;
but: was &quot;error not logged in&quot;
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.junit.Assert.assertThat(Assert.java:956)
at org.junit.rules.ErrorCollector$1.call(ErrorCollector.java:65)
at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:78)
at org.junit.rules.ErrorCollector.checkThat(ErrorCollector.java:63)
at org.junit.rules.ErrorCollector.checkThat(ErrorCollector.java:54)
at dslab.JunitSocketClient.assertThat(JunitSocketClient.java:120)
at dslab.JunitSocketClient.sendAndVerify(JunitSocketClient.java:103)
at dslab.mailbox.MailboxStartsecureTest.sendStartsecure(MailboxStartsecureTest.java:61)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</pre>
</span>
<span class="code">
<pre>java.lang.AssertionError: Expected server response to be Base64 encoded
Expected: a string matching &quot;^(?:[a-zA-Z0-9+/]{4})*(?:[a-zA-Z0-9+/]{2}==|[a-zA-Z0-9+/]{3}=)?$&quot;
but: was &quot;error not logged in&quot;
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.junit.Assert.assertThat(Assert.java:956)
at org.junit.rules.ErrorCollector$1.call(ErrorCollector.java:65)
at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:78)
at org.junit.rules.ErrorCollector.checkThat(ErrorCollector.java:63)
at dslab.mailbox.MailboxStartsecureTest.sendStartsecure(MailboxStartsecureTest.java:68)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
@ -109,11 +167,29 @@
</thead>
<tr>
<td class="failures">sendStartsecure</td>
<td class="failures">3.003s</td>
<td class="failures">4.025s</td>
<td class="failures">failed</td>
</tr>
</table>
</div>
<div id="tab2" class="tab">
<h2>Standard error</h2>
<span class="code">
<pre>Dec 23, 2020 11:54:10 AM dslab.mailbox.MailboxServerProtocolTest setUp
INFO: Waiting for server sockets to appear
Dec 23, 2020 11:54:10 AM dslab.mailbox.MailboxServer run
INFO: Creating DMTP and DMAP serverSockets for MailboxServer + dslab.mailbox.MailboxServer@3fe01346
Dec 23, 2020 11:54:10 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@3df07a72
Dec 23, 2020 11:54:11 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@3df07a72
Dec 23, 2020 11:54:11 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@773ef65c
Dec 23, 2020 11:54:11 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@139c58dc
</pre>
</span>
</div>
</div>
<div id="footer">
<p>
@ -122,7 +198,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Nov 26, 2020, 10:42:20 AM</p>
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Dec 23, 2020, 11:55:51 AM</p>
</div>
</div>
</body>

View File

@ -29,7 +29,7 @@
</td>
<td>
<div class="infoBox" id="failures">
<div class="counter">2</div>
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
@ -41,7 +41,7 @@
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">6.020s</div>
<div class="counter">22.044s</div>
<p>duration</p>
</div>
</td>
@ -50,8 +50,8 @@
</div>
</td>
<td>
<div class="infoBox failures" id="successRate">
<div class="percent">0%</div>
<div class="infoBox success" id="successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
@ -61,70 +61,13 @@
<div id="tabs">
<ul class="tabLinks">
<li>
<a href="#tab0">Failed tests</a>
<a href="#tab0">Tests</a>
</li>
<li>
<a href="#tab1">Tests</a>
<a href="#tab1">Standard error</a>
</li>
</ul>
<div id="tab0" class="tab">
<h2>Failed tests</h2>
<div class="test">
<a name="addresses_returnsCorrectStatistics"></a>
<h3 class="failures">addresses_returnsCorrectStatistics</h3>
<span class="code">
<pre>java.lang.NumberFormatException: For input string: &quot;port_range+8&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.monitoring.MonitoringServerProtocolTest.setUp(MonitoringServerProtocolTest.java:36)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</pre>
</span>
</div>
<div class="test">
<a name="servers_returnsCorrectStatistics"></a>
<h3 class="failures">servers_returnsCorrectStatistics</h3>
<span class="code">
<pre>java.lang.NumberFormatException: For input string: &quot;port_range+8&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.monitoring.MonitoringServerProtocolTest.setUp(MonitoringServerProtocolTest.java:36)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</pre>
</span>
</div>
</div>
<div id="tab1" class="tab">
<h2>Tests</h2>
<table>
<thead>
@ -135,17 +78,55 @@
</tr>
</thead>
<tr>
<td class="failures">addresses_returnsCorrectStatistics</td>
<td class="failures">3.002s</td>
<td class="failures">failed</td>
<td class="success">addresses_returnsCorrectStatistics</td>
<td class="success">11.005s</td>
<td class="success">passed</td>
</tr>
<tr>
<td class="failures">servers_returnsCorrectStatistics</td>
<td class="failures">3.018s</td>
<td class="failures">failed</td>
<td class="success">servers_returnsCorrectStatistics</td>
<td class="success">11.039s</td>
<td class="success">passed</td>
</tr>
</table>
</div>
<div id="tab1" class="tab">
<h2>Standard error</h2>
<span class="code">
<pre>Dec 23, 2020 11:52:57 AM dslab.monitoring.MonitoringServer run
INFO: Creating UDP serverSocket for dslab.monitoring.MonitoringServer@2f62b3f5
Dec 23, 2020 11:53:00 AM dslab.monitoring.MonitoringServerProtocolTest servers_returnsCorrectStatistics
INFO: Sending three monitoring packets to monitoring socket
Dec 23, 2020 11:53:00 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains server: 127.0.0.1:42
Dec 23, 2020 11:53:00 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains address: foo@example.com
Dec 23, 2020 11:53:00 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains server: 127.0.0.1:43
Dec 23, 2020 11:53:00 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains address: foo@example.com
Dec 23, 2020 11:53:00 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains server: 127.0.0.1:42
Dec 23, 2020 11:53:00 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains address: bar@example.com
Dec 23, 2020 11:53:08 AM dslab.monitoring.MonitoringServer run
INFO: Creating UDP serverSocket for dslab.monitoring.MonitoringServer@1e2967a2
Dec 23, 2020 11:53:11 AM dslab.monitoring.MonitoringServerProtocolTest addresses_returnsCorrectStatistics
INFO: Sending three monitoring packets to monitoring socket
Dec 23, 2020 11:53:11 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains server: 127.0.0.1:42
Dec 23, 2020 11:53:11 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains address: foo@example.com
Dec 23, 2020 11:53:11 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains server: 127.0.0.1:43
Dec 23, 2020 11:53:11 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains address: foo@example.com
Dec 23, 2020 11:53:11 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains server: 127.0.0.1:42
Dec 23, 2020 11:53:11 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains address: bar@example.com
</pre>
</span>
</div>
</div>
<div id="footer">
<p>
@ -154,7 +135,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Nov 26, 2020, 10:42:20 AM</p>
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Dec 23, 2020, 11:55:51 AM</p>
</div>
</div>
</body>

View File

@ -29,7 +29,7 @@
</td>
<td>
<div class="infoBox" id="failures">
<div class="counter">1</div>
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
@ -41,7 +41,7 @@
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">0.002s</div>
<div class="counter">6.017s</div>
<p>duration</p>
</div>
</td>
@ -50,8 +50,8 @@
</div>
</td>
<td>
<div class="infoBox failures" id="successRate">
<div class="percent">0%</div>
<div class="infoBox success" id="successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
@ -61,43 +61,13 @@
<div id="tabs">
<ul class="tabLinks">
<li>
<a href="#tab0">Failed tests</a>
<a href="#tab0">Tests</a>
</li>
<li>
<a href="#tab1">Tests</a>
<a href="#tab1">Standard error</a>
</li>
</ul>
<div id="tab0" class="tab">
<h2>Failed tests</h2>
<div class="test">
<a name="runAndShutdownMonitoringServer_createsAndStopsUdpSocketCorrectly"></a>
<h3 class="failures">runAndShutdownMonitoringServer_createsAndStopsUdpSocketCorrectly</h3>
<span class="code">
<pre>java.lang.NumberFormatException: For input string: &quot;port_range+8&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.monitoring.MonitoringServerTest.runAndShutdownMonitoringServer_createsAndStopsUdpSocketCorrectly(MonitoringServerTest.java:27)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</pre>
</span>
</div>
</div>
<div id="tab1" class="tab">
<h2>Tests</h2>
<table>
<thead>
@ -108,12 +78,28 @@
</tr>
</thead>
<tr>
<td class="failures">runAndShutdownMonitoringServer_createsAndStopsUdpSocketCorrectly</td>
<td class="failures">0.002s</td>
<td class="failures">failed</td>
<td class="success">runAndShutdownMonitoringServer_createsAndStopsUdpSocketCorrectly</td>
<td class="success">6.017s</td>
<td class="success">passed</td>
</tr>
</table>
</div>
<div id="tab1" class="tab">
<h2>Standard error</h2>
<span class="code">
<pre>Dec 23, 2020 11:53:19 AM dslab.monitoring.MonitoringServerTest runAndShutdownMonitoringServer_createsAndStopsUdpSocketCorrectly
INFO: Starting thread with component dslab.monitoring.MonitoringServer@7baac9c6
Dec 23, 2020 11:53:19 AM dslab.monitoring.MonitoringServer run
INFO: Creating UDP serverSocket for dslab.monitoring.MonitoringServer@7baac9c6
Dec 23, 2020 11:53:22 AM dslab.monitoring.MonitoringServerTest runAndShutdownMonitoringServer_createsAndStopsUdpSocketCorrectly
INFO: Trying to create socket on port 11628
Dec 23, 2020 11:53:22 AM dslab.monitoring.MonitoringServerTest runAndShutdownMonitoringServer_createsAndStopsUdpSocketCorrectly
INFO: Shutting down component dslab.monitoring.MonitoringServer@7baac9c6
Dec 23, 2020 11:53:25 AM dslab.monitoring.MonitoringServerTest runAndShutdownMonitoringServer_createsAndStopsUdpSocketCorrectly
INFO: Waiting for thread to stop for component dslab.monitoring.MonitoringServer@7baac9c6
</pre>
</span>
</div>
</div>
<div id="footer">
<p>
@ -122,7 +108,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Nov 26, 2020, 10:42:20 AM</p>
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Dec 23, 2020, 11:55:51 AM</p>
</div>
</div>
</body>

View File

@ -41,7 +41,7 @@
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">36.056s</div>
<div class="counter">36.035s</div>
<p>duration</p>
</div>
</td>
@ -76,12 +76,8 @@
<a name="ns01_startAndShutdownRootNameserver_createsAndUnexportsRegistryCorrectly"></a>
<h3 class="failures">ns01_startAndShutdownRootNameserver_createsAndUnexportsRegistryCorrectly</h3>
<span class="code">
<pre>java.lang.NumberFormatException: For input string: &quot;port_range+9&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.naming.NameserverTest.ns01_startAndShutdownRootNameserver_createsAndUnexportsRegistryCorrectly(NameserverTest.java:78)
<pre>java.lang.AssertionError: Expected root nameserver to start a registry, but it couldn't be located or registry.list() failed
at dslab.naming.NameserverTest.ns01_startAndShutdownRootNameserver_createsAndUnexportsRegistryCorrectly(NameserverTest.java:81)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
@ -94,6 +90,28 @@
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
java.net.ConnectException: Connection refused (Connection refused)
at java.rmi/sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:623)
at java.rmi/sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:209)
at java.rmi/sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:196)
at java.rmi/sun.rmi.server.UnicastRef.newCall(UnicastRef.java:343)
at java.rmi/sun.rmi.registry.RegistryImpl_Stub.list(RegistryImpl_Stub.java:90)
at dslab.naming.NameserverTest.ns01_startAndShutdownRootNameserver_createsAndUnexportsRegistryCorrectly(NameserverTest.java:79)
... 12 more
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
at java.base/java.net.Socket.connect(Socket.java:609)
at java.base/java.net.Socket.connect(Socket.java:558)
at java.base/java.net.Socket.&lt;init&gt;(Socket.java:454)
at java.base/java.net.Socket.&lt;init&gt;(Socket.java:231)
at java.rmi/sun.rmi.transport.tcp.TCPDirectSocketFactory.createSocket(TCPDirectSocketFactory.java:40)
at java.rmi/sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:617)
... 17 more
</pre>
</span>
</div>
@ -101,12 +119,8 @@
<a name="ns02_startRootNameserver_registersRemoteObjectCorrectly"></a>
<h3 class="failures">ns02_startRootNameserver_registersRemoteObjectCorrectly</h3>
<span class="code">
<pre>java.lang.NumberFormatException: For input string: &quot;port_range+9&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.naming.NameserverTest.ns02_startRootNameserver_registersRemoteObjectCorrectly(NameserverTest.java:109)
<pre>java.lang.AssertionError: Error while looking up remote object
at dslab.naming.NameserverTest.ns02_startRootNameserver_registersRemoteObjectCorrectly(NameserverTest.java:118)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
@ -126,12 +140,14 @@
<a name="ns03_startingZoneNameserver_registersNameserverCorrectly"></a>
<h3 class="failures">ns03_startingZoneNameserver_registersNameserverCorrectly</h3>
<span class="code">
<pre>java.lang.NumberFormatException: For input string: &quot;port_range+9&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.naming.NameserverTest.ns03_startingZoneNameserver_registersNameserverCorrectly(NameserverTest.java:141)
<pre>java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
java.net.ConnectException: Connection refused (Connection refused)
at java.rmi/sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:623)
at java.rmi/sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:209)
at java.rmi/sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:196)
at java.rmi/sun.rmi.server.UnicastRef.newCall(UnicastRef.java:343)
at java.rmi/sun.rmi.registry.RegistryImpl_Stub.list(RegistryImpl_Stub.java:90)
at dslab.naming.NameserverTest.ns03_startingZoneNameserver_registersNameserverCorrectly(NameserverTest.java:143)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
@ -144,6 +160,19 @@
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
at java.base/java.net.Socket.connect(Socket.java:609)
at java.base/java.net.Socket.connect(Socket.java:558)
at java.base/java.net.Socket.&lt;init&gt;(Socket.java:454)
at java.base/java.net.Socket.&lt;init&gt;(Socket.java:231)
at java.rmi/sun.rmi.transport.tcp.TCPDirectSocketFactory.createSocket(TCPDirectSocketFactory.java:40)
at java.rmi/sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:617)
... 17 more
</pre>
</span>
</div>
@ -151,12 +180,14 @@
<a name="ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly"></a>
<h3 class="failures">ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly</h3>
<span class="code">
<pre>java.lang.NumberFormatException: For input string: &quot;port_range+9&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.naming.NameserverTest.ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly(NameserverTest.java:185)
<pre>java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
java.net.ConnectException: Connection refused (Connection refused)
at java.rmi/sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:623)
at java.rmi/sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:209)
at java.rmi/sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:196)
at java.rmi/sun.rmi.server.UnicastRef.newCall(UnicastRef.java:343)
at java.rmi/sun.rmi.registry.RegistryImpl_Stub.lookup(RegistryImpl_Stub.java:116)
at dslab.naming.NameserverTest.ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly(NameserverTest.java:189)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
@ -169,6 +200,19 @@
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
at java.base/java.net.Socket.connect(Socket.java:609)
at java.base/java.net.Socket.connect(Socket.java:558)
at java.base/java.net.Socket.&lt;init&gt;(Socket.java:454)
at java.base/java.net.Socket.&lt;init&gt;(Socket.java:231)
at java.rmi/sun.rmi.transport.tcp.TCPDirectSocketFactory.createSocket(TCPDirectSocketFactory.java:40)
at java.rmi/sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:617)
... 17 more
</pre>
</span>
</div>
@ -185,22 +229,22 @@
</thead>
<tr>
<td class="failures">ns01_startAndShutdownRootNameserver_createsAndUnexportsRegistryCorrectly</td>
<td class="failures">6.038s</td>
<td class="failures">6.016s</td>
<td class="failures">failed</td>
</tr>
<tr>
<td class="failures">ns02_startRootNameserver_registersRemoteObjectCorrectly</td>
<td class="failures">6.005s</td>
<td class="failures">6.006s</td>
<td class="failures">failed</td>
</tr>
<tr>
<td class="failures">ns03_startingZoneNameserver_registersNameserverCorrectly</td>
<td class="failures">12.007s</td>
<td class="failures">12.005s</td>
<td class="failures">failed</td>
</tr>
<tr>
<td class="failures">ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly</td>
<td class="failures">12.006s</td>
<td class="failures">12.008s</td>
<td class="failures">failed</td>
</tr>
</table>
@ -208,29 +252,33 @@
<div id="tab2" class="tab">
<h2>Standard error</h2>
<span class="code">
<pre>Nov 26, 2020 10:41:23 AM dslab.naming.NameserverTest ns01_startAndShutdownRootNameserver_createsAndUnexportsRegistryCorrectly
<pre>Dec 23, 2020 11:53:34 AM dslab.naming.NameserverTest ns01_startAndShutdownRootNameserver_createsAndUnexportsRegistryCorrectly
INFO: Starting ns-root thread
Nov 26, 2020 10:41:26 AM dslab.naming.NameserverTest sendShutdown
Dec 23, 2020 11:53:37 AM dslab.naming.NameserverTest sendShutdown
INFO: Sending shutdown to component component
Nov 26, 2020 10:41:29 AM dslab.naming.NameserverTest ns02_startRootNameserver_registersRemoteObjectCorrectly
Dec 23, 2020 11:53:40 AM dslab.naming.NameserverTest ns02_startRootNameserver_registersRemoteObjectCorrectly
INFO: Starting ns-root thread
Nov 26, 2020 10:41:32 AM dslab.naming.NameserverTest sendShutdown
Dec 23, 2020 11:53:43 AM dslab.naming.NameserverTest ns02_startRootNameserver_registersRemoteObjectCorrectly
INFO: Looking up root-nameserver in registry
Dec 23, 2020 11:53:43 AM dslab.naming.NameserverTest sendShutdown
INFO: Sending shutdown to component component
Nov 26, 2020 10:41:35 AM dslab.naming.NameserverTest ns03_startingZoneNameserver_registersNameserverCorrectly
Dec 23, 2020 11:53:46 AM dslab.naming.NameserverTest ns03_startingZoneNameserver_registersNameserverCorrectly
INFO: Starting ns-root thread
Nov 26, 2020 10:41:38 AM dslab.naming.NameserverTest ns03_startingZoneNameserver_registersNameserverCorrectly
Dec 23, 2020 11:53:49 AM dslab.naming.NameserverTest ns03_startingZoneNameserver_registersNameserverCorrectly
INFO: Starting ns-planet thread
Nov 26, 2020 10:41:41 AM dslab.naming.NameserverTest sendShutdown
Dec 23, 2020 11:53:52 AM dslab.naming.NameserverTest sendShutdown
INFO: Sending shutdown to component component
Nov 26, 2020 10:41:44 AM dslab.naming.NameserverTest sendShutdown
Dec 23, 2020 11:53:55 AM dslab.naming.NameserverTest sendShutdown
INFO: Sending shutdown to component component
Nov 26, 2020 10:41:47 AM dslab.naming.NameserverTest ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly
Dec 23, 2020 11:53:58 AM dslab.naming.NameserverTest ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly
INFO: Starting ns-root thread
Nov 26, 2020 10:41:50 AM dslab.naming.NameserverTest ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly
Dec 23, 2020 11:54:01 AM dslab.naming.NameserverTest ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly
INFO: Starting ns-planet thread
Nov 26, 2020 10:41:53 AM dslab.naming.NameserverTest sendShutdown
Dec 23, 2020 11:54:04 AM dslab.naming.NameserverTest ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly
INFO: Looking up root-nameserver in registry
Dec 23, 2020 11:54:04 AM dslab.naming.NameserverTest sendShutdown
INFO: Sending shutdown to component component
Nov 26, 2020 10:41:56 AM dslab.naming.NameserverTest sendShutdown
Dec 23, 2020 11:54:07 AM dslab.naming.NameserverTest sendShutdown
INFO: Sending shutdown to component component
</pre>
</span>
@ -243,7 +291,7 @@ INFO: Sending shutdown to component component
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Nov 26, 2020, 10:42:20 AM</p>
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Dec 23, 2020, 11:55:51 AM</p>
</div>
</div>
</body>

View File

@ -29,7 +29,7 @@
</td>
<td>
<div class="infoBox" id="failures">
<div class="counter">2</div>
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
@ -41,7 +41,7 @@
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">6.005s</div>
<div class="counter">6.037s</div>
<p>duration</p>
</div>
</td>
@ -50,8 +50,8 @@
</div>
</td>
<td>
<div class="infoBox failures" id="successRate">
<div class="percent">0%</div>
<div class="infoBox success" id="successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
@ -61,70 +61,13 @@
<div id="tabs">
<ul class="tabLinks">
<li>
<a href="#tab0">Failed tests</a>
<a href="#tab0">Tests</a>
</li>
<li>
<a href="#tab1">Tests</a>
<a href="#tab1">Standard error</a>
</li>
</ul>
<div id="tab0" class="tab">
<h2>Failed tests</h2>
<div class="test">
<a name="defaultDmtpInteractionTest"></a>
<h3 class="failures">defaultDmtpInteractionTest</h3>
<span class="code">
<pre>java.lang.NumberFormatException: For input string: &quot;port_range&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.transfer.TransferServerProtocolTest.setUp(TransferServerProtocolTest.java:31)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</pre>
</span>
</div>
<div class="test">
<a name="sendWithoutRecipient_returnsErrorOnSend"></a>
<h3 class="failures">sendWithoutRecipient_returnsErrorOnSend</h3>
<span class="code">
<pre>java.lang.NumberFormatException: For input string: &quot;port_range&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.transfer.TransferServerProtocolTest.setUp(TransferServerProtocolTest.java:31)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</pre>
</span>
</div>
</div>
<div id="tab1" class="tab">
<h2>Tests</h2>
<table>
<thead>
@ -135,17 +78,97 @@
</tr>
</thead>
<tr>
<td class="failures">defaultDmtpInteractionTest</td>
<td class="failures">3.004s</td>
<td class="failures">failed</td>
<td class="success">defaultDmtpInteractionTest</td>
<td class="success">3.015s</td>
<td class="success">passed</td>
</tr>
<tr>
<td class="failures">sendWithoutRecipient_returnsErrorOnSend</td>
<td class="failures">3.001s</td>
<td class="failures">failed</td>
<td class="success">sendWithoutRecipient_returnsErrorOnSend</td>
<td class="success">3.022s</td>
<td class="success">passed</td>
</tr>
</table>
</div>
<div id="tab1" class="tab">
<h2>Standard error</h2>
<span class="code">
<pre>Dec 23, 2020 11:53:28 AM dslab.transfer.TransferServer run
INFO: Creating serverSocket for dslab.transfer.TransferServer@4f2780a4
Dec 23, 2020 11:53:28 AM dslab.transfer.TransferServerProtocolTest setUp
INFO: Waiting for server socket to appear
Dec 23, 2020 11:53:28 AM dslab.transfer.TransferServer$Consumer consume
INFO: Queue currently empty. Waiting for messages to appear...
Dec 23, 2020 11:53:28 AM dslab.transfer.ClientConnection shutdown
INFO: Shutting down client connection dslab.transfer.ClientConnection@230cb815
Dec 23, 2020 11:53:28 AM dslab.transfer.ClientConnection run
INFO: Setting subject to: hello
Dec 23, 2020 11:53:28 AM dslab.transfer.ClientConnection run
INFO: Setting data to: hello from junit
Dec 23, 2020 11:53:28 AM dslab.transfer.ClientConnection shutdown
INFO: Shutting down client connection dslab.transfer.ClientConnection@13137acb
Dec 23, 2020 11:53:28 AM dslab.transfer.ClientConnection shutdown
INFO: Shutting down client connection dslab.transfer.ClientConnection@230cb815
Dec 23, 2020 11:53:28 AM dslab.transfer.ClientConnection shutdown
INFO: Shutting down client connection dslab.transfer.ClientConnection@13137acb
Dec 23, 2020 11:53:28 AM dslab.transfer.TransferServer$Producer produce
INFO: Added message from trillian@earth.planet
to arthur@earth.planet
subject hello
data hello from junit
to queue
Dec 23, 2020 11:53:28 AM dslab.transfer.TransferServer$Consumer run
INFO: Consumer thread has been interrupted. Exiting...Thread[Thread-12,5,FailOnTimeoutGroup]
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServerProtocolTest setUp
INFO: Waiting for server socket to appear
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer run
INFO: Creating serverSocket for dslab.transfer.TransferServer@7f9374ad
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer consume
INFO: Queue not empty. Processing message...
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer consume
INFO: Took message from trillian@earth.planet
to arthur@earth.planet
subject hello
data hello from junit
from queue
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer consume
INFO: msg.getTo() contains: [arthur@earth.planet]
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer consume
INFO: Trying to send message to arthur@earth.planet
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer domainLookup
INFO: Performing domain lookup for address arthur@earth.planet
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer consume
INFO: Domain lookup successful. Port is: 11622
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer replayMessage
INFO: Replaying message for message: from trillian@earth.planet
to arthur@earth.planet
subject hello
data hello from junit
on port 11622
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer sendErrorMail
INFO: Trying to send error mail to address trillian@earth.planet
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer domainLookup
INFO: Performing domain lookup for address trillian@earth.planet
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer sendErrorMail
SEVERE: Sending error mail failed because socket communication failed
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer consume
INFO: Queue currently empty. Waiting for messages to appear...
Dec 23, 2020 11:53:31 AM dslab.transfer.ClientConnection shutdown
INFO: Shutting down client connection dslab.transfer.ClientConnection@395b40fd
Dec 23, 2020 11:53:31 AM dslab.transfer.ClientConnection run
INFO: Setting subject to: hello
Dec 23, 2020 11:53:31 AM dslab.transfer.ClientConnection run
INFO: Setting data to: hello from junit
Dec 23, 2020 11:53:31 AM dslab.transfer.ClientConnection shutdown
INFO: Shutting down client connection dslab.transfer.ClientConnection@69536688
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer run
INFO: Consumer thread has been interrupted. Exiting...Thread[Thread-18,5,FailOnTimeoutGroup]
Dec 23, 2020 11:53:31 AM dslab.transfer.ClientConnection shutdown
INFO: Shutting down client connection dslab.transfer.ClientConnection@395b40fd
Dec 23, 2020 11:53:31 AM dslab.transfer.ClientConnection shutdown
INFO: Shutting down client connection dslab.transfer.ClientConnection@69536688
</pre>
</span>
</div>
</div>
<div id="footer">
<p>
@ -154,7 +177,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Nov 26, 2020, 10:42:20 AM</p>
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Dec 23, 2020, 11:55:51 AM</p>
</div>
</div>
</body>

View File

@ -29,7 +29,7 @@
</td>
<td>
<div class="infoBox" id="failures">
<div class="counter">1</div>
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
@ -41,7 +41,7 @@
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">0s</div>
<div class="counter">3.046s</div>
<p>duration</p>
</div>
</td>
@ -50,8 +50,8 @@
</div>
</td>
<td>
<div class="infoBox failures" id="successRate">
<div class="percent">0%</div>
<div class="infoBox success" id="successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
@ -61,43 +61,13 @@
<div id="tabs">
<ul class="tabLinks">
<li>
<a href="#tab0">Failed tests</a>
<a href="#tab0">Tests</a>
</li>
<li>
<a href="#tab1">Tests</a>
<a href="#tab1">Standard error</a>
</li>
</ul>
<div id="tab0" class="tab">
<h2>Failed tests</h2>
<div class="test">
<a name="runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly"></a>
<h3 class="failures">runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly</h3>
<span class="code">
<pre>java.lang.NumberFormatException: For input string: &quot;port_range&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.transfer.TransferServerTest.runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly(TransferServerTest.java:30)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</pre>
</span>
</div>
</div>
<div id="tab1" class="tab">
<h2>Tests</h2>
<table>
<thead>
@ -108,12 +78,36 @@
</tr>
</thead>
<tr>
<td class="failures">runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly</td>
<td class="failures">0s</td>
<td class="failures">failed</td>
<td class="success">runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly</td>
<td class="success">3.046s</td>
<td class="success">passed</td>
</tr>
</table>
</div>
<div id="tab1" class="tab">
<h2>Standard error</h2>
<span class="code">
<pre>Dec 23, 2020 11:53:25 AM dslab.monitoring.MonitoringServerTest runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly
INFO: Starting thread with component dslab.transfer.TransferServer@986eb44
Dec 23, 2020 11:53:25 AM dslab.monitoring.MonitoringServerTest runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly
INFO: Waiting for socket to open on port 11620
Dec 23, 2020 11:53:25 AM dslab.transfer.TransferServer run
INFO: Creating serverSocket for dslab.transfer.TransferServer@986eb44
Dec 23, 2020 11:53:25 AM dslab.transfer.TransferServer$Consumer consume
INFO: Queue currently empty. Waiting for messages to appear...
Dec 23, 2020 11:53:25 AM dslab.monitoring.MonitoringServerTest runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly
INFO: Shutting down component dslab.transfer.TransferServer@986eb44
Dec 23, 2020 11:53:25 AM dslab.transfer.ClientConnection shutdown
INFO: Shutting down client connection dslab.transfer.ClientConnection@47f8f420
Dec 23, 2020 11:53:25 AM dslab.transfer.TransferServer$Consumer run
INFO: Consumer thread has been interrupted. Exiting...Thread[Thread-9,5,FailOnTimeoutGroup]
Dec 23, 2020 11:53:25 AM dslab.transfer.ClientConnection shutdown
INFO: Shutting down client connection dslab.transfer.ClientConnection@47f8f420
Dec 23, 2020 11:53:28 AM dslab.monitoring.MonitoringServerTest runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly
INFO: Waiting for thread to stop for component dslab.transfer.TransferServer@986eb44
</pre>
</span>
</div>
</div>
<div id="footer">
<p>
@ -122,7 +116,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Nov 26, 2020, 10:42:20 AM</p>
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Dec 23, 2020, 11:55:51 AM</p>
</div>
</div>
</body>

View File

@ -26,7 +26,7 @@
</td>
<td>
<div class="infoBox" id="failures">
<div class="counter">19</div>
<div class="counter">8</div>
<p>failures</p>
</div>
</td>
@ -38,7 +38,7 @@
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">1m3.12s</div>
<div class="counter">2m54.33s</div>
<p>duration</p>
</div>
</td>
@ -48,7 +48,7 @@
</td>
<td>
<div class="infoBox failures" id="successRate">
<div class="percent">0%</div>
<div class="percent">57%</div>
<p>successful</p>
</div>
</td>
@ -83,42 +83,10 @@
<a href="classes/dslab.client.MessageClientStartupTest.html#startClient_shouldConnectToMailboxServerAndSendStartsecure">startClient_shouldConnectToMailboxServerAndSendStartsecure</a>
</li>
<li>
<a href="classes/dslab.mailbox.MailboxServerProtocolTest.html">MailboxServerProtocolTest</a>.
<a href="classes/dslab.mailbox.MailboxServerProtocolTest.html#acceptDmtpMessage_listDmapMessage">acceptDmtpMessage_listDmapMessage</a>
</li>
<li>
<a href="classes/dslab.mailbox.MailboxServerProtocolTest.html">MailboxServerProtocolTest</a>.
<a href="classes/dslab.mailbox.MailboxServerProtocolTest.html#dmtpMessage_withUnknownRecipient_returnsError">dmtpMessage_withUnknownRecipient_returnsError</a>
</li>
<li>
<a href="classes/dslab.mailbox.MailboxServerProtocolTest.html">MailboxServerProtocolTest</a>.
<a href="classes/dslab.mailbox.MailboxServerProtocolTest.html#loginAndLogout_withValidLogin">loginAndLogout_withValidLogin</a>
</li>
<li>
<a href="classes/dslab.mailbox.MailboxServerProtocolTest.html">MailboxServerProtocolTest</a>.
<a href="classes/dslab.mailbox.MailboxServerProtocolTest.html#login_withInvalidLogin_returnsError">login_withInvalidLogin_returnsError</a>
</li>
<li>
<a href="classes/dslab.mailbox.MailboxServerTest.html">MailboxServerTest</a>.
<a href="classes/dslab.mailbox.MailboxServerTest.html#runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly">runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly</a>
</li>
<li>
<a href="classes/dslab.mailbox.MailboxStartsecureTest.html">MailboxStartsecureTest</a>.
<a href="classes/dslab.mailbox.MailboxStartsecureTest.html#sendStartsecure">sendStartsecure</a>
</li>
<li>
<a href="classes/dslab.monitoring.MonitoringServerProtocolTest.html">MonitoringServerProtocolTest</a>.
<a href="classes/dslab.monitoring.MonitoringServerProtocolTest.html#addresses_returnsCorrectStatistics">addresses_returnsCorrectStatistics</a>
</li>
<li>
<a href="classes/dslab.monitoring.MonitoringServerProtocolTest.html">MonitoringServerProtocolTest</a>.
<a href="classes/dslab.monitoring.MonitoringServerProtocolTest.html#servers_returnsCorrectStatistics">servers_returnsCorrectStatistics</a>
</li>
<li>
<a href="classes/dslab.monitoring.MonitoringServerTest.html">MonitoringServerTest</a>.
<a href="classes/dslab.monitoring.MonitoringServerTest.html#runAndShutdownMonitoringServer_createsAndStopsUdpSocketCorrectly">runAndShutdownMonitoringServer_createsAndStopsUdpSocketCorrectly</a>
</li>
<li>
<a href="classes/dslab.naming.NameserverTest.html">NameserverTest</a>.
<a href="classes/dslab.naming.NameserverTest.html#ns01_startAndShutdownRootNameserver_createsAndUnexportsRegistryCorrectly">ns01_startAndShutdownRootNameserver_createsAndUnexportsRegistryCorrectly</a>
</li>
@ -134,18 +102,6 @@
<a href="classes/dslab.naming.NameserverTest.html">NameserverTest</a>.
<a href="classes/dslab.naming.NameserverTest.html#ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly">ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly</a>
</li>
<li>
<a href="classes/dslab.transfer.TransferServerProtocolTest.html">TransferServerProtocolTest</a>.
<a href="classes/dslab.transfer.TransferServerProtocolTest.html#defaultDmtpInteractionTest">defaultDmtpInteractionTest</a>
</li>
<li>
<a href="classes/dslab.transfer.TransferServerProtocolTest.html">TransferServerProtocolTest</a>.
<a href="classes/dslab.transfer.TransferServerProtocolTest.html#sendWithoutRecipient_returnsErrorOnSend">sendWithoutRecipient_returnsErrorOnSend</a>
</li>
<li>
<a href="classes/dslab.transfer.TransferServerTest.html">TransferServerTest</a>.
<a href="classes/dslab.transfer.TransferServerTest.html#runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly">runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly</a>
</li>
</ul>
</div>
<div id="tab1" class="tab">
@ -169,7 +125,7 @@
<td>3</td>
<td>3</td>
<td>0</td>
<td>0.011s</td>
<td>1m21.03s</td>
<td class="failures">0%</td>
</tr>
<tr>
@ -177,20 +133,20 @@
<a href="packages/dslab.mailbox.html">dslab.mailbox</a>
</td>
<td>6</td>
<td>6</td>
<td>1</td>
<td>0</td>
<td>15.023s</td>
<td class="failures">0%</td>
<td>20.124s</td>
<td class="failures">83%</td>
</tr>
<tr>
<td class="failures">
<td class="success">
<a href="packages/dslab.monitoring.html">dslab.monitoring</a>
</td>
<td>3</td>
<td>3</td>
<td>0</td>
<td>6.022s</td>
<td class="failures">0%</td>
<td>0</td>
<td>28.061s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="failures">
@ -199,18 +155,18 @@
<td>4</td>
<td>4</td>
<td>0</td>
<td>36.056s</td>
<td>36.035s</td>
<td class="failures">0%</td>
</tr>
<tr>
<td class="failures">
<td class="success">
<a href="packages/dslab.transfer.html">dslab.transfer</a>
</td>
<td>3</td>
<td>3</td>
<td>0</td>
<td>6.005s</td>
<td class="failures">0%</td>
<td>0</td>
<td>9.083s</td>
<td class="success">100%</td>
</tr>
</tbody>
</table>
@ -236,7 +192,7 @@
<td>2</td>
<td>2</td>
<td>0</td>
<td>0.008s</td>
<td>1m6.01s</td>
<td class="failures">0%</td>
</tr>
<tr>
@ -246,28 +202,28 @@
<td>1</td>
<td>1</td>
<td>0</td>
<td>0.003s</td>
<td>15.017s</td>
<td class="failures">0%</td>
</tr>
<tr>
<td class="failures">
<td class="success">
<a href="classes/dslab.mailbox.MailboxServerProtocolTest.html">dslab.mailbox.MailboxServerProtocolTest</a>
</td>
<td>4</td>
<td>4</td>
<td>0</td>
<td>12.017s</td>
<td class="failures">0%</td>
<td>0</td>
<td>13.092s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="failures">
<td class="success">
<a href="classes/dslab.mailbox.MailboxServerTest.html">dslab.mailbox.MailboxServerTest</a>
</td>
<td>1</td>
<td>1</td>
<td>0</td>
<td>0.003s</td>
<td class="failures">0%</td>
<td>0</td>
<td>3.007s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="failures">
@ -276,28 +232,28 @@
<td>1</td>
<td>1</td>
<td>0</td>
<td>3.003s</td>
<td>4.025s</td>
<td class="failures">0%</td>
</tr>
<tr>
<td class="failures">
<td class="success">
<a href="classes/dslab.monitoring.MonitoringServerProtocolTest.html">dslab.monitoring.MonitoringServerProtocolTest</a>
</td>
<td>2</td>
<td>2</td>
<td>0</td>
<td>6.020s</td>
<td class="failures">0%</td>
<td>0</td>
<td>22.044s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="failures">
<td class="success">
<a href="classes/dslab.monitoring.MonitoringServerTest.html">dslab.monitoring.MonitoringServerTest</a>
</td>
<td>1</td>
<td>1</td>
<td>0</td>
<td>0.002s</td>
<td class="failures">0%</td>
<td>0</td>
<td>6.017s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="failures">
@ -306,28 +262,28 @@
<td>4</td>
<td>4</td>
<td>0</td>
<td>36.056s</td>
<td>36.035s</td>
<td class="failures">0%</td>
</tr>
<tr>
<td class="failures">
<td class="success">
<a href="classes/dslab.transfer.TransferServerProtocolTest.html">dslab.transfer.TransferServerProtocolTest</a>
</td>
<td>2</td>
<td>2</td>
<td>0</td>
<td>6.005s</td>
<td class="failures">0%</td>
<td>0</td>
<td>6.037s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="failures">
<td class="success">
<a href="classes/dslab.transfer.TransferServerTest.html">dslab.transfer.TransferServerTest</a>
</td>
<td>1</td>
<td>1</td>
<td>0</td>
<td>0s</td>
<td class="failures">0%</td>
<td>0</td>
<td>3.046s</td>
<td class="success">100%</td>
</tr>
</tbody>
</table>
@ -340,7 +296,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Nov 26, 2020, 10:42:20 AM</p>
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Dec 23, 2020, 11:55:51 AM</p>
</div>
</div>
</body>

View File

@ -40,7 +40,7 @@
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">0.011s</div>
<div class="counter">1m21.03s</div>
<p>duration</p>
</div>
</td>
@ -103,7 +103,7 @@
<td>2</td>
<td>2</td>
<td>0</td>
<td>0.008s</td>
<td>1m6.01s</td>
<td class="failures">0%</td>
</tr>
<tr>
@ -113,7 +113,7 @@
<td>1</td>
<td>1</td>
<td>0</td>
<td>0.003s</td>
<td>15.017s</td>
<td class="failures">0%</td>
</tr>
</table>
@ -126,7 +126,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Nov 26, 2020, 10:42:20 AM</p>
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Dec 23, 2020, 11:55:51 AM</p>
</div>
</div>
</body>

View File

@ -28,7 +28,7 @@
</td>
<td>
<div class="infoBox" id="failures">
<div class="counter">6</div>
<div class="counter">1</div>
<p>failures</p>
</div>
</td>
@ -40,7 +40,7 @@
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">15.023s</div>
<div class="counter">20.124s</div>
<p>duration</p>
</div>
</td>
@ -50,7 +50,7 @@
</td>
<td>
<div class="infoBox failures" id="successRate">
<div class="percent">0%</div>
<div class="percent">83%</div>
<p>successful</p>
</div>
</td>
@ -70,26 +70,6 @@
<h2>Failed tests</h2>
<ul class="linkList">
<li>
<a href="../classes/dslab.mailbox.MailboxServerProtocolTest.html">MailboxServerProtocolTest</a>.
<a href="../classes/dslab.mailbox.MailboxServerProtocolTest.html#acceptDmtpMessage_listDmapMessage">acceptDmtpMessage_listDmapMessage</a>
</li>
<li>
<a href="../classes/dslab.mailbox.MailboxServerProtocolTest.html">MailboxServerProtocolTest</a>.
<a href="../classes/dslab.mailbox.MailboxServerProtocolTest.html#dmtpMessage_withUnknownRecipient_returnsError">dmtpMessage_withUnknownRecipient_returnsError</a>
</li>
<li>
<a href="../classes/dslab.mailbox.MailboxServerProtocolTest.html">MailboxServerProtocolTest</a>.
<a href="../classes/dslab.mailbox.MailboxServerProtocolTest.html#loginAndLogout_withValidLogin">loginAndLogout_withValidLogin</a>
</li>
<li>
<a href="../classes/dslab.mailbox.MailboxServerProtocolTest.html">MailboxServerProtocolTest</a>.
<a href="../classes/dslab.mailbox.MailboxServerProtocolTest.html#login_withInvalidLogin_returnsError">login_withInvalidLogin_returnsError</a>
</li>
<li>
<a href="../classes/dslab.mailbox.MailboxServerTest.html">MailboxServerTest</a>.
<a href="../classes/dslab.mailbox.MailboxServerTest.html#runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly">runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly</a>
</li>
<li>
<a href="../classes/dslab.mailbox.MailboxStartsecureTest.html">MailboxStartsecureTest</a>.
<a href="../classes/dslab.mailbox.MailboxStartsecureTest.html#sendStartsecure">sendStartsecure</a>
</li>
@ -109,24 +89,24 @@
</tr>
</thread>
<tr>
<td class="failures">
<td class="success">
<a href="../classes/dslab.mailbox.MailboxServerProtocolTest.html">MailboxServerProtocolTest</a>
</td>
<td>4</td>
<td>4</td>
<td>0</td>
<td>12.017s</td>
<td class="failures">0%</td>
<td>0</td>
<td>13.092s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="failures">
<td class="success">
<a href="../classes/dslab.mailbox.MailboxServerTest.html">MailboxServerTest</a>
</td>
<td>1</td>
<td>1</td>
<td>0</td>
<td>0.003s</td>
<td class="failures">0%</td>
<td>0</td>
<td>3.007s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="failures">
@ -135,7 +115,7 @@
<td>1</td>
<td>1</td>
<td>0</td>
<td>3.003s</td>
<td>4.025s</td>
<td class="failures">0%</td>
</tr>
</table>
@ -148,7 +128,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Nov 26, 2020, 10:42:20 AM</p>
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Dec 23, 2020, 11:55:51 AM</p>
</div>
</div>
</body>

View File

@ -28,7 +28,7 @@
</td>
<td>
<div class="infoBox" id="failures">
<div class="counter">3</div>
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
@ -40,7 +40,7 @@
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">6.022s</div>
<div class="counter">28.061s</div>
<p>duration</p>
</div>
</td>
@ -49,8 +49,8 @@
</div>
</td>
<td>
<div class="infoBox failures" id="successRate">
<div class="percent">0%</div>
<div class="infoBox success" id="successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
@ -60,30 +60,10 @@
<div id="tabs">
<ul class="tabLinks">
<li>
<a href="#tab0">Failed tests</a>
</li>
<li>
<a href="#tab1">Classes</a>
<a href="#tab0">Classes</a>
</li>
</ul>
<div id="tab0" class="tab">
<h2>Failed tests</h2>
<ul class="linkList">
<li>
<a href="../classes/dslab.monitoring.MonitoringServerProtocolTest.html">MonitoringServerProtocolTest</a>.
<a href="../classes/dslab.monitoring.MonitoringServerProtocolTest.html#addresses_returnsCorrectStatistics">addresses_returnsCorrectStatistics</a>
</li>
<li>
<a href="../classes/dslab.monitoring.MonitoringServerProtocolTest.html">MonitoringServerProtocolTest</a>.
<a href="../classes/dslab.monitoring.MonitoringServerProtocolTest.html#servers_returnsCorrectStatistics">servers_returnsCorrectStatistics</a>
</li>
<li>
<a href="../classes/dslab.monitoring.MonitoringServerTest.html">MonitoringServerTest</a>.
<a href="../classes/dslab.monitoring.MonitoringServerTest.html#runAndShutdownMonitoringServer_createsAndStopsUdpSocketCorrectly">runAndShutdownMonitoringServer_createsAndStopsUdpSocketCorrectly</a>
</li>
</ul>
</div>
<div id="tab1" class="tab">
<h2>Classes</h2>
<table>
<thread>
@ -97,24 +77,24 @@
</tr>
</thread>
<tr>
<td class="failures">
<td class="success">
<a href="../classes/dslab.monitoring.MonitoringServerProtocolTest.html">MonitoringServerProtocolTest</a>
</td>
<td>2</td>
<td>2</td>
<td>0</td>
<td>6.020s</td>
<td class="failures">0%</td>
<td>0</td>
<td>22.044s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="failures">
<td class="success">
<a href="../classes/dslab.monitoring.MonitoringServerTest.html">MonitoringServerTest</a>
</td>
<td>1</td>
<td>1</td>
<td>0</td>
<td>0.002s</td>
<td class="failures">0%</td>
<td>0</td>
<td>6.017s</td>
<td class="success">100%</td>
</tr>
</table>
</div>
@ -126,7 +106,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Nov 26, 2020, 10:42:20 AM</p>
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Dec 23, 2020, 11:55:51 AM</p>
</div>
</div>
</body>

View File

@ -40,7 +40,7 @@
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">36.056s</div>
<div class="counter">36.035s</div>
<p>duration</p>
</div>
</td>
@ -107,7 +107,7 @@
<td>4</td>
<td>4</td>
<td>0</td>
<td>36.056s</td>
<td>36.035s</td>
<td class="failures">0%</td>
</tr>
</table>
@ -120,7 +120,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Nov 26, 2020, 10:42:20 AM</p>
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Dec 23, 2020, 11:55:51 AM</p>
</div>
</div>
</body>

View File

@ -28,7 +28,7 @@
</td>
<td>
<div class="infoBox" id="failures">
<div class="counter">3</div>
<div class="counter">0</div>
<p>failures</p>
</div>
</td>
@ -40,7 +40,7 @@
</td>
<td>
<div class="infoBox" id="duration">
<div class="counter">6.005s</div>
<div class="counter">9.083s</div>
<p>duration</p>
</div>
</td>
@ -49,8 +49,8 @@
</div>
</td>
<td>
<div class="infoBox failures" id="successRate">
<div class="percent">0%</div>
<div class="infoBox success" id="successRate">
<div class="percent">100%</div>
<p>successful</p>
</div>
</td>
@ -60,30 +60,10 @@
<div id="tabs">
<ul class="tabLinks">
<li>
<a href="#tab0">Failed tests</a>
</li>
<li>
<a href="#tab1">Classes</a>
<a href="#tab0">Classes</a>
</li>
</ul>
<div id="tab0" class="tab">
<h2>Failed tests</h2>
<ul class="linkList">
<li>
<a href="../classes/dslab.transfer.TransferServerProtocolTest.html">TransferServerProtocolTest</a>.
<a href="../classes/dslab.transfer.TransferServerProtocolTest.html#defaultDmtpInteractionTest">defaultDmtpInteractionTest</a>
</li>
<li>
<a href="../classes/dslab.transfer.TransferServerProtocolTest.html">TransferServerProtocolTest</a>.
<a href="../classes/dslab.transfer.TransferServerProtocolTest.html#sendWithoutRecipient_returnsErrorOnSend">sendWithoutRecipient_returnsErrorOnSend</a>
</li>
<li>
<a href="../classes/dslab.transfer.TransferServerTest.html">TransferServerTest</a>.
<a href="../classes/dslab.transfer.TransferServerTest.html#runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly">runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly</a>
</li>
</ul>
</div>
<div id="tab1" class="tab">
<h2>Classes</h2>
<table>
<thread>
@ -97,24 +77,24 @@
</tr>
</thread>
<tr>
<td class="failures">
<td class="success">
<a href="../classes/dslab.transfer.TransferServerProtocolTest.html">TransferServerProtocolTest</a>
</td>
<td>2</td>
<td>2</td>
<td>0</td>
<td>6.005s</td>
<td class="failures">0%</td>
<td>0</td>
<td>6.037s</td>
<td class="success">100%</td>
</tr>
<tr>
<td class="failures">
<td class="success">
<a href="../classes/dslab.transfer.TransferServerTest.html">TransferServerTest</a>
</td>
<td>1</td>
<td>1</td>
<td>0</td>
<td>0s</td>
<td class="failures">0%</td>
<td>0</td>
<td>3.046s</td>
<td class="success">100%</td>
</tr>
</table>
</div>
@ -126,7 +106,7 @@
<input id="line-wrapping-toggle" type="checkbox" autocomplete="off"/>
</label>
</div>Generated by
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Nov 26, 2020, 10:42:20 AM</p>
<a href="http://www.gradle.org">Gradle 6.6.1</a> at Dec 23, 2020, 11:55:51 AM</p>
</div>
</div>
</body>

View File

@ -1,236 +1,102 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="dslab.client.MessageClientMailboxTest" tests="2" skipped="0" failures="2" errors="0" timestamp="2020-11-26T09:42:20" hostname="clemens-desktop" time="0.008">
<testsuite name="dslab.client.MessageClientMailboxTest" tests="2" skipped="0" failures="2" errors="0" timestamp="2020-12-23T10:54:45" hostname="skynet" time="66.014">
<properties/>
<testcase name="inbox_mulipleMails_showsAllInboxDataCorrectly" classname="dslab.client.MessageClientMailboxTest" time="0.004">
<failure message="java.lang.NumberFormatException: For input string: &quot;port_range+2&quot;" type="java.lang.NumberFormatException">java.lang.NumberFormatException: For input string: &quot;port_range+2&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.client.MessageClientMailboxTest.setUp(MessageClientMailboxTest.java:59)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:119)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.base/java.lang.Thread.run(Thread.java:834)
</failure>
<failure message="java.lang.NullPointerException" type="java.lang.NullPointerException">java.lang.NullPointerException
at dslab.client.MessageClientMailboxTest.tearDown(MessageClientMailboxTest.java:74)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:119)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.base/java.lang.Thread.run(Thread.java:834)
<testcase name="inbox_mulipleMails_showsAllInboxDataCorrectly" classname="dslab.client.MessageClientMailboxTest" time="43.009">
<failure message="org.junit.runners.model.TestTimedOutException: test timed out after 40000 milliseconds" type="org.junit.runners.model.TestTimedOutException">org.junit.runners.model.TestTimedOutException: test timed out after 40000 milliseconds
at java.base@11.0.8/jdk.internal.misc.Unsafe.park(Native Method)
at java.base@11.0.8/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)
at java.base@11.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123)
at java.base@11.0.8/java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:458)
at app//dslab.StreamListener.poll(StreamListener.java:34)
at app//dslab.JunitSocketClient.read(JunitSocketClient.java:82)
at app//dslab.JunitSocketClient.sendAndRead(JunitSocketClient.java:108)
at app//dslab.JunitSocketClient.sendAndVerify(JunitSocketClient.java:103)
at app//dslab.client.MessageClientMailboxTest.inbox_mulipleMails_showsAllInboxDataCorrectly(MessageClientMailboxTest.java:121)
at java.base@11.0.8/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base@11.0.8/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base@11.0.8/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base@11.0.8/java.lang.reflect.Method.invoke(Method.java:566)
at app//org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at app//org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at app//org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at app//org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at app//org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at app//org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base@11.0.8/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base@11.0.8/java.lang.Thread.run(Thread.java:834)
</failure>
</testcase>
<testcase name="inbox_singleMail_showsAllInboxDataCorrectly" classname="dslab.client.MessageClientMailboxTest" time="0.004">
<failure message="java.lang.NumberFormatException: For input string: &quot;port_range+2&quot;" type="java.lang.NumberFormatException">java.lang.NumberFormatException: For input string: &quot;port_range+2&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.client.MessageClientMailboxTest.setUp(MessageClientMailboxTest.java:59)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:119)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.base/java.lang.Thread.run(Thread.java:834)
</failure>
<failure message="java.lang.NullPointerException" type="java.lang.NullPointerException">java.lang.NullPointerException
at dslab.client.MessageClientMailboxTest.tearDown(MessageClientMailboxTest.java:74)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:119)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.base/java.lang.Thread.run(Thread.java:834)
<testcase name="inbox_singleMail_showsAllInboxDataCorrectly" classname="dslab.client.MessageClientMailboxTest" time="23.005">
<failure message="org.junit.runners.model.TestTimedOutException: test timed out after 20000 milliseconds" type="org.junit.runners.model.TestTimedOutException">org.junit.runners.model.TestTimedOutException: test timed out after 20000 milliseconds
at java.base@11.0.8/jdk.internal.misc.Unsafe.park(Native Method)
at java.base@11.0.8/java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:234)
at java.base@11.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2123)
at java.base@11.0.8/java.util.concurrent.LinkedBlockingQueue.poll(LinkedBlockingQueue.java:458)
at app//dslab.StreamListener.poll(StreamListener.java:34)
at app//dslab.JunitSocketClient.read(JunitSocketClient.java:82)
at app//dslab.JunitSocketClient.sendAndRead(JunitSocketClient.java:108)
at app//dslab.JunitSocketClient.sendAndVerify(JunitSocketClient.java:103)
at app//dslab.client.MessageClientMailboxTest.inbox_singleMail_showsAllInboxDataCorrectly(MessageClientMailboxTest.java:92)
at java.base@11.0.8/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base@11.0.8/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base@11.0.8/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base@11.0.8/java.lang.reflect.Method.invoke(Method.java:566)
at app//org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at app//org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at app//org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at app//org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at app//org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at app//org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base@11.0.8/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base@11.0.8/java.lang.Thread.run(Thread.java:834)
</failure>
</testcase>
<system-out><![CDATA[]]></system-out>
<system-err><![CDATA[Nov 26, 2020 10:42:20 AM dslab.client.MessageClientMailboxTest setUp
<system-err><![CDATA[Dec 23, 2020 11:54:45 AM dslab.client.MessageClientMailboxTest setUp
INFO: Creating mailbox server
Nov 26, 2020 10:42:20 AM dslab.client.MessageClientMailboxTest setUp
Dec 23, 2020 11:54:45 AM dslab.mailbox.MailboxServer run
INFO: Creating DMTP and DMAP serverSockets for MailboxServer + dslab.mailbox.MailboxServer@12a79257
Dec 23, 2020 11:54:45 AM dslab.client.MessageClientMailboxTest setUp
INFO: Waiting for mailbox server sockets
Nov 26, 2020 10:42:20 AM dslab.client.MessageClientMailboxTest setUp
Dec 23, 2020 11:54:45 AM dslab.client.MessageClientMailboxTest setUp
INFO: Starting message client
Dec 23, 2020 11:54:45 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@29ceee08
Dec 23, 2020 11:54:48 AM dslab.mailbox.DMTPConnection run
INFO: Split EMail addresses: [trillian@earth.planet]
Dec 23, 2020 11:54:48 AM dslab.mailbox.DMTPConnection run
INFO: Current email address in msg.getTo(): trillian@earth.planet
Dec 23, 2020 11:54:48 AM dslab.mailbox.DMTPConnection run
INFO: Address trillian@earth.planet belongs to this domain earth.planet
Dec 23, 2020 11:54:48 AM dslab.mailbox.DMTPConnection run
INFO: Address trillian@earth.planet belongs to this domain and user exists. Adding address to msg.To() field
Dec 23, 2020 11:54:48 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@27090541
Dec 23, 2020 11:55:28 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@7175fa12
Dec 23, 2020 11:55:28 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@29ceee08
Dec 23, 2020 11:55:28 AM dslab.client.MessageClientMailboxTest setUp
INFO: Creating mailbox server
Nov 26, 2020 10:42:20 AM dslab.client.MessageClientMailboxTest setUp
Dec 23, 2020 11:55:28 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@27090541
Dec 23, 2020 11:55:28 AM dslab.mailbox.MailboxServer run
INFO: Creating DMTP and DMAP serverSockets for MailboxServer + dslab.mailbox.MailboxServer@1a4b8391
Dec 23, 2020 11:55:28 AM dslab.client.MessageClientMailboxTest setUp
INFO: Waiting for mailbox server sockets
Dec 23, 2020 11:55:28 AM dslab.client.MessageClientMailboxTest setUp
INFO: Starting message client
Dec 23, 2020 11:55:28 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@47222a70
Dec 23, 2020 11:55:31 AM dslab.mailbox.DMTPConnection run
INFO: Split EMail addresses: [trillian@earth.planet]
Dec 23, 2020 11:55:31 AM dslab.mailbox.DMTPConnection run
INFO: Current email address in msg.getTo(): trillian@earth.planet
Dec 23, 2020 11:55:31 AM dslab.mailbox.DMTPConnection run
INFO: Address trillian@earth.planet belongs to this domain earth.planet
Dec 23, 2020 11:55:31 AM dslab.mailbox.DMTPConnection run
INFO: Address trillian@earth.planet belongs to this domain and user exists. Adding address to msg.To() field
Dec 23, 2020 11:55:31 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@49e5dce4
]]></system-err>
</testsuite>

View File

@ -1,117 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="dslab.client.MessageClientStartupTest" tests="1" skipped="0" failures="1" errors="0" timestamp="2020-11-26T09:42:20" hostname="clemens-desktop" time="0.003">
<testsuite name="dslab.client.MessageClientStartupTest" tests="1" skipped="0" failures="1" errors="0" timestamp="2020-12-23T10:54:30" hostname="skynet" time="15.017">
<properties/>
<testcase name="startClient_shouldConnectToMailboxServerAndSendStartsecure" classname="dslab.client.MessageClientStartupTest" time="0.003">
<failure message="java.lang.NumberFormatException: For input string: &quot;port_range+3&quot;" type="java.lang.NumberFormatException">java.lang.NumberFormatException: For input string: &quot;port_range+3&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.client.MessageClientStartupTest.setUp(MessageClientStartupTest.java:37)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:119)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.base/java.lang.Thread.run(Thread.java:834)
</failure>
<failure message="java.lang.NullPointerException" type="java.lang.NullPointerException">java.lang.NullPointerException
at dslab.client.MessageClientStartupTest.tearDown(MessageClientStartupTest.java:48)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:33)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.runTestClass(JUnitTestClassExecutor.java:110)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:58)
at org.gradle.api.internal.tasks.testing.junit.JUnitTestClassExecutor.execute(JUnitTestClassExecutor.java:38)
at org.gradle.api.internal.tasks.testing.junit.AbstractJUnitTestClassProcessor.processTestClass(AbstractJUnitTestClassProcessor.java:62)
at org.gradle.api.internal.tasks.testing.SuiteTestClassProcessor.processTestClass(SuiteTestClassProcessor.java:51)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.dispatch.ContextClassLoaderDispatch.dispatch(ContextClassLoaderDispatch.java:33)
at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)
at com.sun.proxy.$Proxy2.processTestClass(Unknown Source)
at org.gradle.api.internal.tasks.testing.worker.TestWorker.processTestClass(TestWorker.java:119)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36)
at org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:182)
at org.gradle.internal.remote.internal.hub.MessageHubBackedObjectConnection$DispatchWrapper.dispatch(MessageHubBackedObjectConnection.java:164)
at org.gradle.internal.remote.internal.hub.MessageHub$Handler.run(MessageHub.java:414)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
at java.base/java.lang.Thread.run(Thread.java:834)
<testcase name="startClient_shouldConnectToMailboxServerAndSendStartsecure" classname="dslab.client.MessageClientStartupTest" time="15.017">
<failure message="org.junit.runners.model.TestTimedOutException: test timed out after 15000 milliseconds" type="org.junit.runners.model.TestTimedOutException">org.junit.runners.model.TestTimedOutException: test timed out after 15000 milliseconds
at java.base@11.0.8/jdk.internal.misc.Unsafe.park(Native Method)
at java.base@11.0.8/java.util.concurrent.locks.LockSupport.park(LockSupport.java:194)
at java.base@11.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:885)
at java.base@11.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1039)
at java.base@11.0.8/java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1345)
at java.base@11.0.8/java.util.concurrent.CountDownLatch.await(CountDownLatch.java:232)
at app//dslab.client.MessageClientStartupTest.startClient_shouldConnectToMailboxServerAndSendStartsecure(MessageClientStartupTest.java:78)
at java.base@11.0.8/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base@11.0.8/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base@11.0.8/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base@11.0.8/java.lang.reflect.Method.invoke(Method.java:566)
at app//org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at app//org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at app//org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at app//org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at app//org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at app//org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base@11.0.8/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base@11.0.8/java.lang.Thread.run(Thread.java:834)
</failure>
</testcase>
<system-out><![CDATA[]]></system-out>
<system-err><![CDATA[]]></system-err>
<system-err><![CDATA[Dec 23, 2020 11:54:30 AM dslab.SimpleTcpServer run
INFO: Starting mock server on 11623
Dec 23, 2020 11:54:30 AM dslab.SimpleTcpServer run
INFO: Listening on client connection
Dec 23, 2020 11:54:30 AM dslab.SimpleTcpServer run
INFO: Processing client connection Socket[addr=/127.0.0.1,port=47618,localport=11623]
Dec 23, 2020 11:54:30 AM dslab.SimpleTcpServer run
INFO: Listening on client connection
Dec 23, 2020 11:54:45 AM dslab.SimpleTcpServer close
INFO: Closing server socket
Dec 23, 2020 11:54:45 AM dslab.SimpleTcpServer close
INFO: Closing server socket
]]></system-err>
</testsuite>

View File

@ -1,98 +1,98 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="dslab.mailbox.MailboxServerProtocolTest" tests="4" skipped="0" failures="4" errors="0" timestamp="2020-11-26T09:42:05" hostname="clemens-desktop" time="12.017">
<testsuite name="dslab.mailbox.MailboxServerProtocolTest" tests="4" skipped="0" failures="0" errors="0" timestamp="2020-12-23T10:54:14" hostname="skynet" time="13.092">
<properties/>
<testcase name="acceptDmtpMessage_listDmapMessage" classname="dslab.mailbox.MailboxServerProtocolTest" time="3.002">
<failure message="java.lang.NumberFormatException: For input string: &quot;port_range+3&quot;" type="java.lang.NumberFormatException">java.lang.NumberFormatException: For input string: &quot;port_range+3&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.mailbox.MailboxServerProtocolTest.setUp(MailboxServerProtocolTest.java:31)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</failure>
</testcase>
<testcase name="loginAndLogout_withValidLogin" classname="dslab.mailbox.MailboxServerProtocolTest" time="3.002">
<failure message="java.lang.NumberFormatException: For input string: &quot;port_range+3&quot;" type="java.lang.NumberFormatException">java.lang.NumberFormatException: For input string: &quot;port_range+3&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.mailbox.MailboxServerProtocolTest.setUp(MailboxServerProtocolTest.java:31)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</failure>
</testcase>
<testcase name="dmtpMessage_withUnknownRecipient_returnsError" classname="dslab.mailbox.MailboxServerProtocolTest" time="3.012">
<failure message="java.lang.NumberFormatException: For input string: &quot;port_range+3&quot;" type="java.lang.NumberFormatException">java.lang.NumberFormatException: For input string: &quot;port_range+3&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.mailbox.MailboxServerProtocolTest.setUp(MailboxServerProtocolTest.java:31)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</failure>
</testcase>
<testcase name="login_withInvalidLogin_returnsError" classname="dslab.mailbox.MailboxServerProtocolTest" time="3.001">
<failure message="java.lang.NumberFormatException: For input string: &quot;port_range+3&quot;" type="java.lang.NumberFormatException">java.lang.NumberFormatException: For input string: &quot;port_range+3&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.mailbox.MailboxServerProtocolTest.setUp(MailboxServerProtocolTest.java:31)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</failure>
</testcase>
<testcase name="acceptDmtpMessage_listDmapMessage" classname="dslab.mailbox.MailboxServerProtocolTest" time="4.043"/>
<testcase name="loginAndLogout_withValidLogin" classname="dslab.mailbox.MailboxServerProtocolTest" time="3.018"/>
<testcase name="dmtpMessage_withUnknownRecipient_returnsError" classname="dslab.mailbox.MailboxServerProtocolTest" time="3.017"/>
<testcase name="login_withInvalidLogin_returnsError" classname="dslab.mailbox.MailboxServerProtocolTest" time="3.014"/>
<system-out><![CDATA[]]></system-out>
<system-err><![CDATA[]]></system-err>
<system-err><![CDATA[Dec 23, 2020 11:54:14 AM dslab.mailbox.MailboxServerProtocolTest setUp
INFO: Waiting for server sockets to appear
Dec 23, 2020 11:54:14 AM dslab.mailbox.MailboxServer run
INFO: Creating DMTP and DMAP serverSockets for MailboxServer + dslab.mailbox.MailboxServer@241b95b7
Dec 23, 2020 11:54:14 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@1f3c1728
Dec 23, 2020 11:54:14 AM dslab.mailbox.DMTPConnection run
INFO: Split EMail addresses: [trillian@earth.planet]
Dec 23, 2020 11:54:14 AM dslab.mailbox.DMTPConnection run
INFO: Current email address in msg.getTo(): trillian@earth.planet
Dec 23, 2020 11:54:14 AM dslab.mailbox.DMTPConnection run
INFO: Address trillian@earth.planet belongs to this domain earth.planet
Dec 23, 2020 11:54:14 AM dslab.mailbox.DMTPConnection run
INFO: Address trillian@earth.planet belongs to this domain and user exists. Adding address to msg.To() field
Dec 23, 2020 11:54:14 AM dslab.mailbox.DMTPConnection storeMessage
INFO: Storing message from arthur@earth.planet
to trillian@earth.planet
subject hello
data hello from junit
Dec 23, 2020 11:54:14 AM dslab.mailbox.DMTPConnection storeMessage
INFO: storeMessage(): checking if msg 0 arthur@earth.planet hello already exists for recipient trillian@earth.planet
Dec 23, 2020 11:54:14 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@73c9d031
Dec 23, 2020 11:54:14 AM dslab.mailbox.DMAPConnection loginLoop
INFO: User successfully logged in: trillian@earth.planet
Dec 23, 2020 11:54:15 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@6b871b90
Dec 23, 2020 11:54:15 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@6540f948
Dec 23, 2020 11:54:15 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@1f3c1728
Dec 23, 2020 11:54:15 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@6b871b90
Dec 23, 2020 11:54:15 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@73c9d031
Dec 23, 2020 11:54:18 AM dslab.mailbox.MailboxServerProtocolTest setUp
INFO: Waiting for server sockets to appear
Dec 23, 2020 11:54:18 AM dslab.mailbox.MailboxServer run
INFO: Creating DMTP and DMAP serverSockets for MailboxServer + dslab.mailbox.MailboxServer@65f3f723
Dec 23, 2020 11:54:18 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@50d35cb5
Dec 23, 2020 11:54:18 AM dslab.mailbox.DMAPConnection loginLoop
INFO: User successfully logged in: trillian@earth.planet
Dec 23, 2020 11:54:18 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@49562a5
Dec 23, 2020 11:54:18 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@4fc64790
Dec 23, 2020 11:54:18 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@50d35cb5
Dec 23, 2020 11:54:18 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@49562a5
Dec 23, 2020 11:54:21 AM dslab.mailbox.MailboxServerProtocolTest setUp
INFO: Waiting for server sockets to appear
Dec 23, 2020 11:54:21 AM dslab.mailbox.MailboxServer run
INFO: Creating DMTP and DMAP serverSockets for MailboxServer + dslab.mailbox.MailboxServer@520788de
Dec 23, 2020 11:54:21 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@5873049e
Dec 23, 2020 11:54:21 AM dslab.mailbox.DMTPConnection run
INFO: Split EMail addresses: [unknown@earth.planet]
Dec 23, 2020 11:54:21 AM dslab.mailbox.DMTPConnection run
INFO: Current email address in msg.getTo(): unknown@earth.planet
Dec 23, 2020 11:54:21 AM dslab.mailbox.DMTPConnection run
INFO: Address unknown@earth.planet belongs to this domain earth.planet
Dec 23, 2020 11:54:21 AM dslab.mailbox.DMTPConnection run
INFO: Our userStorage in domain earth.planet does not contain user unknown
Dec 23, 2020 11:54:21 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@6b58be8b
Dec 23, 2020 11:54:21 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@5873049e
Dec 23, 2020 11:54:21 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@dc78beb
Dec 23, 2020 11:54:21 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@6b58be8b
Dec 23, 2020 11:54:24 AM dslab.mailbox.MailboxServerProtocolTest setUp
INFO: Waiting for server sockets to appear
Dec 23, 2020 11:54:24 AM dslab.mailbox.MailboxServer run
INFO: Creating DMTP and DMAP serverSockets for MailboxServer + dslab.mailbox.MailboxServer@5d7aadb9
Dec 23, 2020 11:54:24 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@340579b2
Dec 23, 2020 11:54:24 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@6f10dd9e
Dec 23, 2020 11:54:24 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@340579b2
Dec 23, 2020 11:54:24 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@61d72fd4
Dec 23, 2020 11:54:24 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@6f10dd9e
]]></system-err>
</testsuite>

View File

@ -1,29 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="dslab.mailbox.MailboxServerTest" tests="1" skipped="0" failures="1" errors="0" timestamp="2020-11-26T09:42:05" hostname="clemens-desktop" time="0.003">
<testsuite name="dslab.mailbox.MailboxServerTest" tests="1" skipped="0" failures="0" errors="0" timestamp="2020-12-23T10:54:27" hostname="skynet" time="3.007">
<properties/>
<testcase name="runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly" classname="dslab.mailbox.MailboxServerTest" time="0.003">
<failure message="java.lang.NumberFormatException: For input string: &quot;port_range+2&quot;" type="java.lang.NumberFormatException">java.lang.NumberFormatException: For input string: &quot;port_range+2&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.mailbox.MailboxServerTest.runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly(MailboxServerTest.java:33)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</failure>
</testcase>
<testcase name="runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly" classname="dslab.mailbox.MailboxServerTest" time="3.007"/>
<system-out><![CDATA[]]></system-out>
<system-err><![CDATA[]]></system-err>
<system-err><![CDATA[Dec 23, 2020 11:54:27 AM dslab.monitoring.MonitoringServerTest runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly
INFO: Starting thread with component dslab.mailbox.MailboxServer@d5e253e
Dec 23, 2020 11:54:27 AM dslab.mailbox.MailboxServer run
INFO: Creating DMTP and DMAP serverSockets for MailboxServer + dslab.mailbox.MailboxServer@d5e253e
Dec 23, 2020 11:54:27 AM dslab.monitoring.MonitoringServerTest runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly
INFO: Waiting for DMTP socket to open on port 11622
Dec 23, 2020 11:54:27 AM dslab.monitoring.MonitoringServerTest runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly
INFO: Waiting for DMAP socket to open on port 11623
Dec 23, 2020 11:54:27 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@50c1e13d
Dec 23, 2020 11:54:27 AM dslab.monitoring.MonitoringServerTest runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly
INFO: Shutting down component dslab.mailbox.MailboxServer@d5e253e
Dec 23, 2020 11:54:27 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@5f003336
Dec 23, 2020 11:54:27 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@50c1e13d
Dec 23, 2020 11:54:30 AM dslab.monitoring.MonitoringServerTest runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly
INFO: Waiting for thread to stop for component dslab.mailbox.MailboxServer@d5e253e
]]></system-err>
</testsuite>

View File

@ -1,13 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="dslab.mailbox.MailboxStartsecureTest" tests="1" skipped="0" failures="1" errors="0" timestamp="2020-11-26T09:42:17" hostname="clemens-desktop" time="3.003">
<testsuite name="dslab.mailbox.MailboxStartsecureTest" tests="1" skipped="0" failures="1" errors="0" timestamp="2020-12-23T10:54:10" hostname="skynet" time="4.025">
<properties/>
<testcase name="sendStartsecure" classname="dslab.mailbox.MailboxStartsecureTest" time="3.003">
<failure message="java.lang.NumberFormatException: For input string: &quot;port_range+3&quot;" type="java.lang.NumberFormatException">java.lang.NumberFormatException: For input string: &quot;port_range+3&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.mailbox.MailboxStartsecureTest.setUp(MailboxStartsecureTest.java:31)
<testcase name="sendStartsecure" classname="dslab.mailbox.MailboxStartsecureTest" time="4.025">
<failure message="java.lang.AssertionError: &#10;Expected: a string containing &quot;ok DMAP2.0&quot;&#10; but: was &quot;ok DMAP&quot;" type="java.lang.AssertionError">java.lang.AssertionError:
Expected: a string containing &quot;ok DMAP2.0&quot;
but: was &quot;ok DMAP&quot;
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.junit.Assert.assertThat(Assert.java:956)
at org.junit.rules.ErrorCollector$1.call(ErrorCollector.java:65)
at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:78)
at org.junit.rules.ErrorCollector.checkThat(ErrorCollector.java:63)
at org.junit.rules.ErrorCollector.checkThat(ErrorCollector.java:54)
at dslab.JunitSocketClient.assertThat(JunitSocketClient.java:120)
at dslab.JunitSocketClient.verify(JunitSocketClient.java:92)
at dslab.mailbox.MailboxStartsecureTest.sendStartsecure(MailboxStartsecureTest.java:58)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
@ -15,9 +21,54 @@
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</failure>
<failure message="java.lang.AssertionError: &#10;Expected: a string containing &quot;ok mailbox-earth-planet&quot;&#10; but: was &quot;error not logged in&quot;" type="java.lang.AssertionError">java.lang.AssertionError:
Expected: a string containing &quot;ok mailbox-earth-planet&quot;
but: was &quot;error not logged in&quot;
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.junit.Assert.assertThat(Assert.java:956)
at org.junit.rules.ErrorCollector$1.call(ErrorCollector.java:65)
at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:78)
at org.junit.rules.ErrorCollector.checkThat(ErrorCollector.java:63)
at org.junit.rules.ErrorCollector.checkThat(ErrorCollector.java:54)
at dslab.JunitSocketClient.assertThat(JunitSocketClient.java:120)
at dslab.JunitSocketClient.sendAndVerify(JunitSocketClient.java:103)
at dslab.mailbox.MailboxStartsecureTest.sendStartsecure(MailboxStartsecureTest.java:61)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</failure>
<failure message="java.lang.AssertionError: Expected server response to be Base64 encoded&#10;Expected: a string matching &quot;^(?:[a-zA-Z0-9+/]{4})*(?:[a-zA-Z0-9+/]{2}==|[a-zA-Z0-9+/]{3}=)?$&quot;&#10; but: was &quot;error not logged in&quot;" type="java.lang.AssertionError">java.lang.AssertionError: Expected server response to be Base64 encoded
Expected: a string matching &quot;^(?:[a-zA-Z0-9+/]{4})*(?:[a-zA-Z0-9+/]{2}==|[a-zA-Z0-9+/]{3}=)?$&quot;
but: was &quot;error not logged in&quot;
at org.hamcrest.MatcherAssert.assertThat(MatcherAssert.java:20)
at org.junit.Assert.assertThat(Assert.java:956)
at org.junit.rules.ErrorCollector$1.call(ErrorCollector.java:65)
at org.junit.rules.ErrorCollector.checkSucceeds(ErrorCollector.java:78)
at org.junit.rules.ErrorCollector.checkThat(ErrorCollector.java:63)
at dslab.mailbox.MailboxStartsecureTest.sendStartsecure(MailboxStartsecureTest.java:68)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
@ -25,5 +76,17 @@
</failure>
</testcase>
<system-out><![CDATA[]]></system-out>
<system-err><![CDATA[]]></system-err>
<system-err><![CDATA[Dec 23, 2020 11:54:10 AM dslab.mailbox.MailboxServerProtocolTest setUp
INFO: Waiting for server sockets to appear
Dec 23, 2020 11:54:10 AM dslab.mailbox.MailboxServer run
INFO: Creating DMTP and DMAP serverSockets for MailboxServer + dslab.mailbox.MailboxServer@3fe01346
Dec 23, 2020 11:54:10 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@3df07a72
Dec 23, 2020 11:54:11 AM dslab.mailbox.DMTPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMTPConnection@3df07a72
Dec 23, 2020 11:54:11 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@773ef65c
Dec 23, 2020 11:54:11 AM dslab.mailbox.DMAPConnection shutdown
INFO: Shutting down client connection dslab.mailbox.DMAPConnection@139c58dc
]]></system-err>
</testsuite>

View File

@ -1,52 +1,40 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="dslab.monitoring.MonitoringServerProtocolTest" tests="2" skipped="0" failures="2" errors="0" timestamp="2020-11-26T09:41:17" hostname="clemens-desktop" time="6.02">
<testsuite name="dslab.monitoring.MonitoringServerProtocolTest" tests="2" skipped="0" failures="0" errors="0" timestamp="2020-12-23T10:52:57" hostname="skynet" time="22.044">
<properties/>
<testcase name="servers_returnsCorrectStatistics" classname="dslab.monitoring.MonitoringServerProtocolTest" time="3.018">
<failure message="java.lang.NumberFormatException: For input string: &quot;port_range+8&quot;" type="java.lang.NumberFormatException">java.lang.NumberFormatException: For input string: &quot;port_range+8&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.monitoring.MonitoringServerProtocolTest.setUp(MonitoringServerProtocolTest.java:36)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</failure>
</testcase>
<testcase name="addresses_returnsCorrectStatistics" classname="dslab.monitoring.MonitoringServerProtocolTest" time="3.002">
<failure message="java.lang.NumberFormatException: For input string: &quot;port_range+8&quot;" type="java.lang.NumberFormatException">java.lang.NumberFormatException: For input string: &quot;port_range+8&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.monitoring.MonitoringServerProtocolTest.setUp(MonitoringServerProtocolTest.java:36)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</failure>
</testcase>
<testcase name="servers_returnsCorrectStatistics" classname="dslab.monitoring.MonitoringServerProtocolTest" time="11.039"/>
<testcase name="addresses_returnsCorrectStatistics" classname="dslab.monitoring.MonitoringServerProtocolTest" time="11.005"/>
<system-out><![CDATA[]]></system-out>
<system-err><![CDATA[]]></system-err>
<system-err><![CDATA[Dec 23, 2020 11:52:57 AM dslab.monitoring.MonitoringServer run
INFO: Creating UDP serverSocket for dslab.monitoring.MonitoringServer@2f62b3f5
Dec 23, 2020 11:53:00 AM dslab.monitoring.MonitoringServerProtocolTest servers_returnsCorrectStatistics
INFO: Sending three monitoring packets to monitoring socket
Dec 23, 2020 11:53:00 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains server: 127.0.0.1:42
Dec 23, 2020 11:53:00 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains address: foo@example.com
Dec 23, 2020 11:53:00 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains server: 127.0.0.1:43
Dec 23, 2020 11:53:00 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains address: foo@example.com
Dec 23, 2020 11:53:00 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains server: 127.0.0.1:42
Dec 23, 2020 11:53:00 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains address: bar@example.com
Dec 23, 2020 11:53:08 AM dslab.monitoring.MonitoringServer run
INFO: Creating UDP serverSocket for dslab.monitoring.MonitoringServer@1e2967a2
Dec 23, 2020 11:53:11 AM dslab.monitoring.MonitoringServerProtocolTest addresses_returnsCorrectStatistics
INFO: Sending three monitoring packets to monitoring socket
Dec 23, 2020 11:53:11 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains server: 127.0.0.1:42
Dec 23, 2020 11:53:11 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains address: foo@example.com
Dec 23, 2020 11:53:11 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains server: 127.0.0.1:43
Dec 23, 2020 11:53:11 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains address: foo@example.com
Dec 23, 2020 11:53:11 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains server: 127.0.0.1:42
Dec 23, 2020 11:53:11 AM dslab.monitoring.MonitoringListener run
INFO: Incoming packet contains address: bar@example.com
]]></system-err>
</testsuite>

View File

@ -1,29 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="dslab.monitoring.MonitoringServerTest" tests="1" skipped="0" failures="1" errors="0" timestamp="2020-11-26T09:41:23" hostname="clemens-desktop" time="0.002">
<testsuite name="dslab.monitoring.MonitoringServerTest" tests="1" skipped="0" failures="0" errors="0" timestamp="2020-12-23T10:53:19" hostname="skynet" time="6.017">
<properties/>
<testcase name="runAndShutdownMonitoringServer_createsAndStopsUdpSocketCorrectly" classname="dslab.monitoring.MonitoringServerTest" time="0.002">
<failure message="java.lang.NumberFormatException: For input string: &quot;port_range+8&quot;" type="java.lang.NumberFormatException">java.lang.NumberFormatException: For input string: &quot;port_range+8&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.monitoring.MonitoringServerTest.runAndShutdownMonitoringServer_createsAndStopsUdpSocketCorrectly(MonitoringServerTest.java:27)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</failure>
</testcase>
<testcase name="runAndShutdownMonitoringServer_createsAndStopsUdpSocketCorrectly" classname="dslab.monitoring.MonitoringServerTest" time="6.017"/>
<system-out><![CDATA[]]></system-out>
<system-err><![CDATA[]]></system-err>
<system-err><![CDATA[Dec 23, 2020 11:53:19 AM dslab.monitoring.MonitoringServerTest runAndShutdownMonitoringServer_createsAndStopsUdpSocketCorrectly
INFO: Starting thread with component dslab.monitoring.MonitoringServer@7baac9c6
Dec 23, 2020 11:53:19 AM dslab.monitoring.MonitoringServer run
INFO: Creating UDP serverSocket for dslab.monitoring.MonitoringServer@7baac9c6
Dec 23, 2020 11:53:22 AM dslab.monitoring.MonitoringServerTest runAndShutdownMonitoringServer_createsAndStopsUdpSocketCorrectly
INFO: Trying to create socket on port 11628
Dec 23, 2020 11:53:22 AM dslab.monitoring.MonitoringServerTest runAndShutdownMonitoringServer_createsAndStopsUdpSocketCorrectly
INFO: Shutting down component dslab.monitoring.MonitoringServer@7baac9c6
Dec 23, 2020 11:53:25 AM dslab.monitoring.MonitoringServerTest runAndShutdownMonitoringServer_createsAndStopsUdpSocketCorrectly
INFO: Waiting for thread to stop for component dslab.monitoring.MonitoringServer@7baac9c6
]]></system-err>
</testsuite>

View File

@ -1,13 +1,48 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="dslab.naming.NameserverTest" tests="4" skipped="0" failures="4" errors="0" timestamp="2020-11-26T09:41:23" hostname="clemens-desktop" time="36.056">
<testsuite name="dslab.naming.NameserverTest" tests="4" skipped="0" failures="4" errors="0" timestamp="2020-12-23T10:53:34" hostname="skynet" time="36.035">
<properties/>
<testcase name="ns01_startAndShutdownRootNameserver_createsAndUnexportsRegistryCorrectly" classname="dslab.naming.NameserverTest" time="6.038">
<failure message="java.lang.NumberFormatException: For input string: &quot;port_range+9&quot;" type="java.lang.NumberFormatException">java.lang.NumberFormatException: For input string: &quot;port_range+9&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.naming.NameserverTest.ns01_startAndShutdownRootNameserver_createsAndUnexportsRegistryCorrectly(NameserverTest.java:78)
<testcase name="ns01_startAndShutdownRootNameserver_createsAndUnexportsRegistryCorrectly" classname="dslab.naming.NameserverTest" time="6.016">
<failure message="java.lang.AssertionError: Expected root nameserver to start a registry, but it couldn't be located or registry.list() failed" type="java.lang.AssertionError">java.lang.AssertionError: Expected root nameserver to start a registry, but it couldn't be located or registry.list() failed
at dslab.naming.NameserverTest.ns01_startAndShutdownRootNameserver_createsAndUnexportsRegistryCorrectly(NameserverTest.java:81)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
java.net.ConnectException: Connection refused (Connection refused)
at java.rmi/sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:623)
at java.rmi/sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:209)
at java.rmi/sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:196)
at java.rmi/sun.rmi.server.UnicastRef.newCall(UnicastRef.java:343)
at java.rmi/sun.rmi.registry.RegistryImpl_Stub.list(RegistryImpl_Stub.java:90)
at dslab.naming.NameserverTest.ns01_startAndShutdownRootNameserver_createsAndUnexportsRegistryCorrectly(NameserverTest.java:79)
... 12 more
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
at java.base/java.net.Socket.connect(Socket.java:609)
at java.base/java.net.Socket.connect(Socket.java:558)
at java.base/java.net.Socket.&lt;init&gt;(Socket.java:454)
at java.base/java.net.Socket.&lt;init&gt;(Socket.java:231)
at java.rmi/sun.rmi.transport.tcp.TCPDirectSocketFactory.createSocket(TCPDirectSocketFactory.java:40)
at java.rmi/sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:617)
... 17 more
</failure>
</testcase>
<testcase name="ns02_startRootNameserver_registersRemoteObjectCorrectly" classname="dslab.naming.NameserverTest" time="6.006">
<failure message="java.lang.AssertionError: Error while looking up remote object " type="java.lang.AssertionError">java.lang.AssertionError: Error while looking up remote object
at dslab.naming.NameserverTest.ns02_startRootNameserver_registersRemoteObjectCorrectly(NameserverTest.java:118)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
@ -22,13 +57,15 @@
at java.base/java.lang.Thread.run(Thread.java:834)
</failure>
</testcase>
<testcase name="ns02_startRootNameserver_registersRemoteObjectCorrectly" classname="dslab.naming.NameserverTest" time="6.005">
<failure message="java.lang.NumberFormatException: For input string: &quot;port_range+9&quot;" type="java.lang.NumberFormatException">java.lang.NumberFormatException: For input string: &quot;port_range+9&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.naming.NameserverTest.ns02_startRootNameserver_registersRemoteObjectCorrectly(NameserverTest.java:109)
<testcase name="ns03_startingZoneNameserver_registersNameserverCorrectly" classname="dslab.naming.NameserverTest" time="12.005">
<failure message="java.rmi.ConnectException: Connection refused to host: localhost; nested exception is: &#10;&#9;java.net.ConnectException: Connection refused (Connection refused)" type="java.rmi.ConnectException">java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
java.net.ConnectException: Connection refused (Connection refused)
at java.rmi/sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:623)
at java.rmi/sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:209)
at java.rmi/sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:196)
at java.rmi/sun.rmi.server.UnicastRef.newCall(UnicastRef.java:343)
at java.rmi/sun.rmi.registry.RegistryImpl_Stub.list(RegistryImpl_Stub.java:90)
at dslab.naming.NameserverTest.ns03_startingZoneNameserver_registersNameserverCorrectly(NameserverTest.java:143)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
@ -41,36 +78,30 @@
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
at java.base/java.net.Socket.connect(Socket.java:609)
at java.base/java.net.Socket.connect(Socket.java:558)
at java.base/java.net.Socket.&lt;init&gt;(Socket.java:454)
at java.base/java.net.Socket.&lt;init&gt;(Socket.java:231)
at java.rmi/sun.rmi.transport.tcp.TCPDirectSocketFactory.createSocket(TCPDirectSocketFactory.java:40)
at java.rmi/sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:617)
... 17 more
</failure>
</testcase>
<testcase name="ns03_startingZoneNameserver_registersNameserverCorrectly" classname="dslab.naming.NameserverTest" time="12.007">
<failure message="java.lang.NumberFormatException: For input string: &quot;port_range+9&quot;" type="java.lang.NumberFormatException">java.lang.NumberFormatException: For input string: &quot;port_range+9&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.naming.NameserverTest.ns03_startingZoneNameserver_registersNameserverCorrectly(NameserverTest.java:141)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</failure>
</testcase>
<testcase name="ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly" classname="dslab.naming.NameserverTest" time="12.006">
<failure message="java.lang.NumberFormatException: For input string: &quot;port_range+9&quot;" type="java.lang.NumberFormatException">java.lang.NumberFormatException: For input string: &quot;port_range+9&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.naming.NameserverTest.ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly(NameserverTest.java:185)
<testcase name="ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly" classname="dslab.naming.NameserverTest" time="12.008">
<failure message="java.rmi.ConnectException: Connection refused to host: localhost; nested exception is: &#10;&#9;java.net.ConnectException: Connection refused (Connection refused)" type="java.rmi.ConnectException">java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
java.net.ConnectException: Connection refused (Connection refused)
at java.rmi/sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:623)
at java.rmi/sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:209)
at java.rmi/sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:196)
at java.rmi/sun.rmi.server.UnicastRef.newCall(UnicastRef.java:343)
at java.rmi/sun.rmi.registry.RegistryImpl_Stub.lookup(RegistryImpl_Stub.java:116)
at dslab.naming.NameserverTest.ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly(NameserverTest.java:189)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
@ -83,32 +114,49 @@
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
Caused by: java.net.ConnectException: Connection refused (Connection refused)
at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399)
at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242)
at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224)
at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:403)
at java.base/java.net.Socket.connect(Socket.java:609)
at java.base/java.net.Socket.connect(Socket.java:558)
at java.base/java.net.Socket.&lt;init&gt;(Socket.java:454)
at java.base/java.net.Socket.&lt;init&gt;(Socket.java:231)
at java.rmi/sun.rmi.transport.tcp.TCPDirectSocketFactory.createSocket(TCPDirectSocketFactory.java:40)
at java.rmi/sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:617)
... 17 more
</failure>
</testcase>
<system-out><![CDATA[]]></system-out>
<system-err><![CDATA[Nov 26, 2020 10:41:23 AM dslab.naming.NameserverTest ns01_startAndShutdownRootNameserver_createsAndUnexportsRegistryCorrectly
<system-err><![CDATA[Dec 23, 2020 11:53:34 AM dslab.naming.NameserverTest ns01_startAndShutdownRootNameserver_createsAndUnexportsRegistryCorrectly
INFO: Starting ns-root thread
Nov 26, 2020 10:41:26 AM dslab.naming.NameserverTest sendShutdown
Dec 23, 2020 11:53:37 AM dslab.naming.NameserverTest sendShutdown
INFO: Sending shutdown to component component
Nov 26, 2020 10:41:29 AM dslab.naming.NameserverTest ns02_startRootNameserver_registersRemoteObjectCorrectly
Dec 23, 2020 11:53:40 AM dslab.naming.NameserverTest ns02_startRootNameserver_registersRemoteObjectCorrectly
INFO: Starting ns-root thread
Nov 26, 2020 10:41:32 AM dslab.naming.NameserverTest sendShutdown
Dec 23, 2020 11:53:43 AM dslab.naming.NameserverTest ns02_startRootNameserver_registersRemoteObjectCorrectly
INFO: Looking up root-nameserver in registry
Dec 23, 2020 11:53:43 AM dslab.naming.NameserverTest sendShutdown
INFO: Sending shutdown to component component
Nov 26, 2020 10:41:35 AM dslab.naming.NameserverTest ns03_startingZoneNameserver_registersNameserverCorrectly
Dec 23, 2020 11:53:46 AM dslab.naming.NameserverTest ns03_startingZoneNameserver_registersNameserverCorrectly
INFO: Starting ns-root thread
Nov 26, 2020 10:41:38 AM dslab.naming.NameserverTest ns03_startingZoneNameserver_registersNameserverCorrectly
Dec 23, 2020 11:53:49 AM dslab.naming.NameserverTest ns03_startingZoneNameserver_registersNameserverCorrectly
INFO: Starting ns-planet thread
Nov 26, 2020 10:41:41 AM dslab.naming.NameserverTest sendShutdown
Dec 23, 2020 11:53:52 AM dslab.naming.NameserverTest sendShutdown
INFO: Sending shutdown to component component
Nov 26, 2020 10:41:44 AM dslab.naming.NameserverTest sendShutdown
Dec 23, 2020 11:53:55 AM dslab.naming.NameserverTest sendShutdown
INFO: Sending shutdown to component component
Nov 26, 2020 10:41:47 AM dslab.naming.NameserverTest ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly
Dec 23, 2020 11:53:58 AM dslab.naming.NameserverTest ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly
INFO: Starting ns-root thread
Nov 26, 2020 10:41:50 AM dslab.naming.NameserverTest ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly
Dec 23, 2020 11:54:01 AM dslab.naming.NameserverTest ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly
INFO: Starting ns-planet thread
Nov 26, 2020 10:41:53 AM dslab.naming.NameserverTest sendShutdown
Dec 23, 2020 11:54:04 AM dslab.naming.NameserverTest ns04_registerAndLookupMailboxServer_registersAndReturnsAddressCorrectly
INFO: Looking up root-nameserver in registry
Dec 23, 2020 11:54:04 AM dslab.naming.NameserverTest sendShutdown
INFO: Sending shutdown to component component
Nov 26, 2020 10:41:56 AM dslab.naming.NameserverTest sendShutdown
Dec 23, 2020 11:54:07 AM dslab.naming.NameserverTest sendShutdown
INFO: Sending shutdown to component component
]]></system-err>
</testsuite>

View File

@ -1,52 +1,82 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="dslab.transfer.TransferServerProtocolTest" tests="2" skipped="0" failures="2" errors="0" timestamp="2020-11-26T09:41:59" hostname="clemens-desktop" time="6.005">
<testsuite name="dslab.transfer.TransferServerProtocolTest" tests="2" skipped="0" failures="0" errors="0" timestamp="2020-12-23T10:53:28" hostname="skynet" time="6.037">
<properties/>
<testcase name="defaultDmtpInteractionTest" classname="dslab.transfer.TransferServerProtocolTest" time="3.004">
<failure message="java.lang.NumberFormatException: For input string: &quot;port_range&quot;" type="java.lang.NumberFormatException">java.lang.NumberFormatException: For input string: &quot;port_range&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.transfer.TransferServerProtocolTest.setUp(TransferServerProtocolTest.java:31)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</failure>
</testcase>
<testcase name="sendWithoutRecipient_returnsErrorOnSend" classname="dslab.transfer.TransferServerProtocolTest" time="3.001">
<failure message="java.lang.NumberFormatException: For input string: &quot;port_range&quot;" type="java.lang.NumberFormatException">java.lang.NumberFormatException: For input string: &quot;port_range&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.transfer.TransferServerProtocolTest.setUp(TransferServerProtocolTest.java:31)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:24)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:27)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</failure>
</testcase>
<testcase name="defaultDmtpInteractionTest" classname="dslab.transfer.TransferServerProtocolTest" time="3.015"/>
<testcase name="sendWithoutRecipient_returnsErrorOnSend" classname="dslab.transfer.TransferServerProtocolTest" time="3.022"/>
<system-out><![CDATA[]]></system-out>
<system-err><![CDATA[]]></system-err>
<system-err><![CDATA[Dec 23, 2020 11:53:28 AM dslab.transfer.TransferServer run
INFO: Creating serverSocket for dslab.transfer.TransferServer@4f2780a4
Dec 23, 2020 11:53:28 AM dslab.transfer.TransferServerProtocolTest setUp
INFO: Waiting for server socket to appear
Dec 23, 2020 11:53:28 AM dslab.transfer.TransferServer$Consumer consume
INFO: Queue currently empty. Waiting for messages to appear...
Dec 23, 2020 11:53:28 AM dslab.transfer.ClientConnection shutdown
INFO: Shutting down client connection dslab.transfer.ClientConnection@230cb815
Dec 23, 2020 11:53:28 AM dslab.transfer.ClientConnection run
INFO: Setting subject to: hello
Dec 23, 2020 11:53:28 AM dslab.transfer.ClientConnection run
INFO: Setting data to: hello from junit
Dec 23, 2020 11:53:28 AM dslab.transfer.ClientConnection shutdown
INFO: Shutting down client connection dslab.transfer.ClientConnection@13137acb
Dec 23, 2020 11:53:28 AM dslab.transfer.ClientConnection shutdown
INFO: Shutting down client connection dslab.transfer.ClientConnection@230cb815
Dec 23, 2020 11:53:28 AM dslab.transfer.ClientConnection shutdown
INFO: Shutting down client connection dslab.transfer.ClientConnection@13137acb
Dec 23, 2020 11:53:28 AM dslab.transfer.TransferServer$Producer produce
INFO: Added message from trillian@earth.planet
to arthur@earth.planet
subject hello
data hello from junit
to queue
Dec 23, 2020 11:53:28 AM dslab.transfer.TransferServer$Consumer run
INFO: Consumer thread has been interrupted. Exiting...Thread[Thread-12,5,FailOnTimeoutGroup]
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServerProtocolTest setUp
INFO: Waiting for server socket to appear
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer run
INFO: Creating serverSocket for dslab.transfer.TransferServer@7f9374ad
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer consume
INFO: Queue not empty. Processing message...
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer consume
INFO: Took message from trillian@earth.planet
to arthur@earth.planet
subject hello
data hello from junit
from queue
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer consume
INFO: msg.getTo() contains: [arthur@earth.planet]
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer consume
INFO: Trying to send message to arthur@earth.planet
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer domainLookup
INFO: Performing domain lookup for address arthur@earth.planet
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer consume
INFO: Domain lookup successful. Port is: 11622
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer replayMessage
INFO: Replaying message for message: from trillian@earth.planet
to arthur@earth.planet
subject hello
data hello from junit
on port 11622
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer sendErrorMail
INFO: Trying to send error mail to address trillian@earth.planet
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer domainLookup
INFO: Performing domain lookup for address trillian@earth.planet
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer sendErrorMail
SEVERE: Sending error mail failed because socket communication failed
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer consume
INFO: Queue currently empty. Waiting for messages to appear...
Dec 23, 2020 11:53:31 AM dslab.transfer.ClientConnection shutdown
INFO: Shutting down client connection dslab.transfer.ClientConnection@395b40fd
Dec 23, 2020 11:53:31 AM dslab.transfer.ClientConnection run
INFO: Setting subject to: hello
Dec 23, 2020 11:53:31 AM dslab.transfer.ClientConnection run
INFO: Setting data to: hello from junit
Dec 23, 2020 11:53:31 AM dslab.transfer.ClientConnection shutdown
INFO: Shutting down client connection dslab.transfer.ClientConnection@69536688
Dec 23, 2020 11:53:31 AM dslab.transfer.TransferServer$Consumer run
INFO: Consumer thread has been interrupted. Exiting...Thread[Thread-18,5,FailOnTimeoutGroup]
Dec 23, 2020 11:53:31 AM dslab.transfer.ClientConnection shutdown
INFO: Shutting down client connection dslab.transfer.ClientConnection@395b40fd
Dec 23, 2020 11:53:31 AM dslab.transfer.ClientConnection shutdown
INFO: Shutting down client connection dslab.transfer.ClientConnection@69536688
]]></system-err>
</testsuite>

View File

@ -1,29 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<testsuite name="dslab.transfer.TransferServerTest" tests="1" skipped="0" failures="1" errors="0" timestamp="2020-11-26T09:42:05" hostname="clemens-desktop" time="0.0">
<testsuite name="dslab.transfer.TransferServerTest" tests="1" skipped="0" failures="0" errors="0" timestamp="2020-12-23T10:53:25" hostname="skynet" time="3.046">
<properties/>
<testcase name="runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly" classname="dslab.transfer.TransferServerTest" time="0.0">
<failure message="java.lang.NumberFormatException: For input string: &quot;port_range&quot;" type="java.lang.NumberFormatException">java.lang.NumberFormatException: For input string: &quot;port_range&quot;
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at dslab.util.Config.getInt(Config.java:52)
at dslab.transfer.TransferServerTest.runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly(TransferServerTest.java:30)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:50)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:47)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
at org.junit.rules.Verifier$1.evaluate(Verifier.java:35)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:298)
at org.junit.internal.runners.statements.FailOnTimeout$CallableStatement.call(FailOnTimeout.java:292)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at java.base/java.lang.Thread.run(Thread.java:834)
</failure>
</testcase>
<testcase name="runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly" classname="dslab.transfer.TransferServerTest" time="3.046"/>
<system-out><![CDATA[]]></system-out>
<system-err><![CDATA[]]></system-err>
<system-err><![CDATA[Dec 23, 2020 11:53:25 AM dslab.monitoring.MonitoringServerTest runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly
INFO: Starting thread with component dslab.transfer.TransferServer@986eb44
Dec 23, 2020 11:53:25 AM dslab.monitoring.MonitoringServerTest runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly
INFO: Waiting for socket to open on port 11620
Dec 23, 2020 11:53:25 AM dslab.transfer.TransferServer run
INFO: Creating serverSocket for dslab.transfer.TransferServer@986eb44
Dec 23, 2020 11:53:25 AM dslab.transfer.TransferServer$Consumer consume
INFO: Queue currently empty. Waiting for messages to appear...
Dec 23, 2020 11:53:25 AM dslab.monitoring.MonitoringServerTest runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly
INFO: Shutting down component dslab.transfer.TransferServer@986eb44
Dec 23, 2020 11:53:25 AM dslab.transfer.ClientConnection shutdown
INFO: Shutting down client connection dslab.transfer.ClientConnection@47f8f420
Dec 23, 2020 11:53:25 AM dslab.transfer.TransferServer$Consumer run
INFO: Consumer thread has been interrupted. Exiting...Thread[Thread-9,5,FailOnTimeoutGroup]
Dec 23, 2020 11:53:25 AM dslab.transfer.ClientConnection shutdown
INFO: Shutting down client connection dslab.transfer.ClientConnection@47f8f420
Dec 23, 2020 11:53:28 AM dslab.monitoring.MonitoringServerTest runAndShutdownTransferServer_createsAndStopsTcpSocketCorrectly
INFO: Waiting for thread to stop for component dslab.transfer.TransferServer@986eb44
]]></system-err>
</testsuite>

View File

@ -1,32 +1,62 @@
dslab/transfer/ClientConnection.java
dslab.transfer.ClientConnection
dslab/transfer/ClientListener.java
dslab.transfer.ClientListener
dslab/nameserver/Nameserver.java
dslab.nameserver.Nameserver
dslab/monitoring/MonitoringServer.java
dslab.monitoring.MonitoringServer
dslab/ComponentFactory.java
dslab.ComponentFactory
dslab/util/Keys.java
dslab.util.Keys
dslab/Message.java
dslab.Message
dslab/exception/UnknownDomainException.java
dslab.exception.UnknownDomainException
dslab/mailbox/IMailboxServer.java
dslab.mailbox.IMailboxServer
dslab/nameserver/INameserverRemote.java
dslab.nameserver.INameserverRemote
dslab/util/Keys.java
dslab.util.Keys
dslab/mailbox/DMTPListener.java
dslab.mailbox.DMTPListener
dslab/mailbox/DMTPConnection.java
dslab.mailbox.DMTPConnection
dslab/monitoring/IMonitoringServer.java
dslab.monitoring.IMonitoringServer
dslab/nameserver/InvalidDomainException.java
dslab.nameserver.InvalidDomainException
dslab/transfer/TransferServer.java
dslab.transfer.TransferServer
dslab/util/Config.java
dslab.util.Config
dslab/exception/MalformedInputException.java
dslab.exception.MalformedInputException
dslab/Email.java
dslab.Email
dslab/exception/UnknownRecipientException.java
dslab.exception.UnknownRecipientException
dslab/transfer/ITransferServer.java
dslab.transfer.ITransferServer
dslab/nameserver/AlreadyRegisteredException.java
dslab.nameserver.AlreadyRegisteredException
dslab/client/MessageClient.java
dslab.client.MessageClient
dslab/mailbox/DMAPConnection.java
dslab.mailbox.DMAPConnection
dslab/client/IMessageClient.java
dslab.client.IMessageClient
dslab/nameserver/INameserver.java
dslab.nameserver.INameserver
dslab/mailbox/MailboxServer.java
dslab.mailbox.MailboxServer
dslab/ComponentFactory.java
dslab.ComponentFactory
dslab/monitoring/MonitoringListener.java
dslab.monitoring.MonitoringListener
dslab/nameserver/INameserverRemote.java
dslab.nameserver.INameserverRemote
dslab/nameserver/InvalidDomainException.java
dslab.nameserver.InvalidDomainException
dslab/transfer/TransferServer.java
dslab.transfer.TransferServer
dslab.transfer.TransferServer$Consumer
dslab.transfer.TransferServer$Producer
dslab/exception/MissingInputException.java
dslab.exception.MissingInputException
dslab/util/Config.java
dslab.util.Config
dslab/exception/MessageNotFoundException.java
dslab.exception.MessageNotFoundException
dslab/nameserver/AlreadyRegisteredException.java
dslab.nameserver.AlreadyRegisteredException
dslab/mailbox/DMAPListener.java
dslab.mailbox.DMAPListener

View File

@ -6,10 +6,10 @@ dslab/Constants.java
dslab.Constants
dslab/client/MessageClientMailboxTest.java
dslab.client.MessageClientMailboxTest
dslab/TestInputStream.java
dslab.TestInputStream
dslab/StringMatches.java
dslab.StringMatches
dslab/TestInputStream.java
dslab.TestInputStream
dslab/transfer/TransferServerProtocolTest.java
dslab.transfer.TransferServerProtocolTest
dslab/mailbox/MailboxServerTest.java

View File

@ -0,0 +1,62 @@
package dslab;
import dslab.exception.MalformedInputException;
import java.util.Objects;
public class Email {
private String username;
private String domain;
public Email(String email) throws MalformedInputException {
if (email.split("@").length != 2)
throw new MalformedInputException("error email addresses must be of the form user@domain: " + email);
if (email.split("@")[0].isBlank())
throw new MalformedInputException("error email addresses must be of the form user@domain" + email);
if (email.split("@")[1].isBlank())
throw new MalformedInputException("error email addresses must be of the form user@domain" + email);
this.username = email.split("@")[0];
this.domain = email.split("@")[1];
}
public Email(String username, String domain) {
this.username = username;
this.domain = domain;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getDomain() {
return domain;
}
public void setDomain(String domain) {
this.domain = domain;
}
@Override
public String toString() {
return username + '@' + domain;
}
@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;
Email email = (Email) o;
return Objects.equals(getUsername(), email.getUsername()) &&
Objects.equals(getDomain(), email.getDomain());
}
@Override
public int hashCode() {
return Objects.hash(getUsername(), getDomain());
}
}

View File

@ -0,0 +1,93 @@
package dslab;
import dslab.exception.MissingInputException;
import java.util.ArrayList;
import java.util.stream.Collectors;
public class Message {
private ArrayList<Email> to = new ArrayList<>();
private Email from;
private String subject = "";
private String data = "";
private Integer id;
public Message() {
}
public Message(ArrayList<Email> to, Email from, String subject, String data) {
this.to = to;
this.from = from;
this.subject = subject;
this.data = data;
}
public void allFieldsSet() throws MissingInputException {
if (this.subject == null) this.subject = "";
if (this.data == null) this.data = "";
if (this.to.isEmpty()) throw new MissingInputException("error no receiver");
if (this.from == null) throw new MissingInputException("error no sender");
}
public void addTo(Email email) {
to.add(email);
}
public String printTo() {
if (this.to.isEmpty())
return null;
return this.to.stream().map(Object::toString).collect(Collectors.joining(","));
}
public ArrayList<Email> getTo() {
return to;
}
public void setTo(ArrayList<Email> to) {
this.to = to;
}
public Email getFrom() {
return from;
}
public void setFrom(Email from) {
this.from = from;
}
public String getSubject() {
return subject;
}
public void setSubject(String subject) {
this.subject = subject;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
public String listMessage() {
return getId() + " " + getFrom() + " " + getSubject();
}
@Override
public String toString() {
return "from " + getFrom().toString() + "\n" +
"to " + printTo() + "\n" +
"subject " + getSubject() + "\n" +
"data " + getData() + "\n";
}
}

View File

@ -0,0 +1,7 @@
package dslab.exception;
public class MalformedInputException extends Exception {
public MalformedInputException(String errorMessage) {
super(errorMessage);
}
}

View File

@ -0,0 +1,7 @@
package dslab.exception;
public class MessageNotFoundException extends Exception {
public MessageNotFoundException(String errorMessage) {
super(errorMessage);
}
}

View File

@ -0,0 +1,7 @@
package dslab.exception;
public class MissingInputException extends Exception {
public MissingInputException(String errorMessage) {
super(errorMessage);
}
}

View File

@ -0,0 +1,7 @@
package dslab.exception;
public class UnknownDomainException extends Exception {
public UnknownDomainException(String errorMessage) {
super(errorMessage);
}
}

View File

@ -0,0 +1,7 @@
package dslab.exception;
public class UnknownRecipientException extends Exception {
public UnknownRecipientException(String errorMessage) {
super(errorMessage);
}
}

View File

@ -0,0 +1,194 @@
package dslab.mailbox;
import dslab.Email;
import dslab.Message;
import dslab.exception.MessageNotFoundException;
import java.io.*;
import java.net.Socket;
import java.net.SocketException;
import java.util.LinkedList;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger;
public class DMAPConnection implements Runnable {
Logger logger = Logger.getLogger(DMAPConnection.class.getName());
private final Socket socket;
private PrintWriter out;
private BufferedReader in;
private Email currentUser = null;
private final ConcurrentHashMap<Email, LinkedList<Message>> storage;
private final ConcurrentHashMap<String, String> userStorage;
public DMAPConnection(Socket connection, ConcurrentHashMap<Email, LinkedList<Message>> storage, ConcurrentHashMap<String, String> userStorage) {
this.socket = connection;
this.storage = storage;
this.userStorage = userStorage;
}
@Override
public void run() {
logger.finer("Preparing for DMAP communication in " + this.toString());
try {
this.out = new PrintWriter(socket.getOutputStream(), true);
this.in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out.println("ok DMAP");
loginLoop();
String userInput;
while (!Thread.currentThread().isInterrupted() && (userInput = in.readLine()) != null) {
if ("quit".equals(userInput)) {
out.println("ok bye");
shutdown();
} else if ("logout".equals(userInput)) {
out.println("ok");
currentUser = null;
loginLoop();
} else if ("list".equals(userInput)) {
listMessages();
} else if ("delete".equals(userInput.split("\\s+")[0])) {
if (userInput.split("\\s+").length == 2) {
try {
deleteMessage(userInput.split("\\s+")[1]);
} catch (MessageNotFoundException e) {
out.println(e.getMessage());
}
} else {
out.println("Please supply a message id to delete!");
}
} else if ("show".equals(userInput.split("\\s+")[0])) {
if (userInput.split("\\s+").length == 2) {
try {
showMessage(userInput.split("\\s+")[1]);
} catch (MessageNotFoundException e) {
out.println(e.getMessage());
}
} else {
out.println("Please supply a message id to show!");
}
} else {
out.println("error protocol error");
shutdown();
}
}
} catch (InterruptedIOException ioe) {
logger.info("Received interrupt from parent. Shutting down...");
shutdown();
} catch (IOException e) {
logger.severe("Failed to get IO-Stream");
e.printStackTrace();
shutdown();
}
}
private void loginLoop() {
String userInput;
try {
while (!Thread.currentThread().isInterrupted()) {
userInput = in.readLine();
if ("quit".equals(userInput.split("\\s+")[0])) {
out.println("ok bye");
shutdown();
} else if ("login".equals(userInput.split("\\s+")[0])) {
String[] args = userInput.split("\\s+");
if (args.length != 3)
out.println("Please specify a username and password to login!");
if (this.userStorage.containsKey(args[1])) {
// Check if username exists
if (args[2].equals(this.userStorage.get(args[1]))) {
// Check if password matches
for (Email email : this.storage.keySet()) {
if (args[1].equals(email.getUsername())) {
// Set current user if login successful
currentUser = email;
logger.info("User successfully logged in: " + currentUser.toString());
out.println("ok");
return;
}
}
} else {
out.println("error wrong password");
}
} else {
out.println("error unknown user");
}
} else {
out.println("error not logged in");
}
}
} catch (InterruptedIOException ioe) {
logger.info("Received interrupt from parent. Shutting down...");
shutdown();
} catch (SocketException e) {
logger.finer("Received interrupt. Exiting " + this.toString());
shutdown();
} catch (IOException e) {
logger.severe("Failed to get IO-Stream");
e.printStackTrace();
shutdown();
}
}
private void showMessage(String id) throws MessageNotFoundException {
int i;
try {
i = Integer.parseInt(id);
} catch (NumberFormatException e) {
throw new MessageNotFoundException("error unknown message id");
}
for (Message m : storage.get(currentUser)) {
if (m.getId() == i) {
out.println(m);
return;
}
}
throw new MessageNotFoundException("error unknown message id");
}
private void listMessages() {
if (storage.get(currentUser).isEmpty()) {
out.println("You do not have any messages at the moment!");
return;
}
for (Message m : storage.get(currentUser)) {
out.println(m.listMessage());
}
}
public void deleteMessage (String id) throws MessageNotFoundException {
int i;
try {
i = Integer.parseInt(id);
} catch (NumberFormatException e) {
throw new MessageNotFoundException("error unknown message id");
}
for (Message m : storage.get(currentUser)) {
if (m.getId() == i) {
storage.get(currentUser).remove(m);
out.println("ok");
return;
}
}
throw new MessageNotFoundException("error unknown message id");
}
public void shutdown() {
logger.info("Shutting down client connection " + this.toString());
try {
if (socket != null)
socket.close();
in.close();
out.close();
} catch (IOException e) {
logger.severe("Error closing socket and/or IO-streams");
e.printStackTrace();
}
Thread.currentThread().interrupt();
}
}

View File

@ -0,0 +1,73 @@
package dslab.mailbox;
import dslab.Email;
import dslab.Message;
import java.io.IOException;
import java.io.InterruptedIOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.logging.Logger;
public class DMAPListener extends Thread {
private final ServerSocket serverSocket;
private final Logger logger = Logger.getLogger(DMAPListener.class.getName());
private final ConcurrentHashMap<Email, LinkedList<Message>> storage;
private final ConcurrentHashMap<String, String> userStorage;
private final ArrayList<DMAPConnection> clients = new ArrayList<>();
private final ExecutorService executorService = Executors.newCachedThreadPool();
public DMAPListener(ServerSocket serverSocket, ConcurrentHashMap<Email, LinkedList<Message>> storage, ConcurrentHashMap<String, String> userStorage) {
this.serverSocket = serverSocket;
this.storage = storage;
this.userStorage = userStorage;
}
@Override
public void run() {
while (!Thread.currentThread().isInterrupted()) {
logger.finer("Waiting for request on serverSocket " + serverSocket.toString());
try {
Socket s = serverSocket.accept();
logger.fine("Processing incoming socket " + s.toString());
DMAPConnection dmapConnection = new DMAPConnection(s, storage, userStorage);
clients.add(dmapConnection);
executorService.submit(dmapConnection);
} catch (InterruptedIOException | SocketException e) {
logger.finer("Received interrupt. Exiting " + this.toString());
this.shutdown();
} catch (IOException e) {
logger.severe("Error starting serverSocket " + serverSocket.toString());
e.printStackTrace();
this.shutdown();
}
}
}
public void shutdown() {
logger.finer("Shutting down DMAPListener " + this.toString());
for (DMAPConnection client : clients) {
if (client != null)
client.shutdown();
}
executorService.shutdown();
try {
if (!executorService.awaitTermination(60, TimeUnit.SECONDS)) {
executorService.shutdownNow();
if (!executorService.awaitTermination(60, TimeUnit.SECONDS))
System.err.println("Pool did not terminate");
}
} catch (InterruptedException ie) {
executorService.shutdownNow();
Thread.currentThread().interrupt();
}
this.interrupt();
}
}

View File

@ -0,0 +1,166 @@
package dslab.mailbox;
import dslab.Email;
import dslab.Message;
import dslab.exception.MalformedInputException;
import java.io.*;
import java.net.Socket;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger;
public class DMTPConnection implements Runnable {
Logger logger = Logger.getLogger(DMTPConnection.class.getName());
private final Socket socket;
private PrintWriter out;
private BufferedReader in;
private Message msg = new Message();
private final String domain;
private final ConcurrentHashMap<Email, LinkedList<Message>> messageStorage;
private final ConcurrentHashMap<String, String> userStorage;
public DMTPConnection(Socket connection, ConcurrentHashMap<Email, LinkedList<Message>> messageStorage, ConcurrentHashMap<String, String> userStorage, String domain) {
this.socket = connection;
this.messageStorage = messageStorage;
this.userStorage = userStorage;
this.domain = domain;
}
@Override
public void run() {
logger.finer("Preparing for DMTP communication in " + this.toString());
try {
this.out = new PrintWriter(socket.getOutputStream(), true);
this.in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out.println("ok DMTP");
String userInput;
try {
if (!("begin".equals(in.readLine()))) {
out.println("error protocol error");
shutdown();
}
} catch (SocketException e) {
// Thrown if socket has already been closed by shutdown() method
logger.finer("Received interrupt. Exiting " + this.toString());
shutdown();
}
out.println("ok");
while (!Thread.currentThread().isInterrupted() && (userInput = in.readLine()) != null) {
if ("quit".equals(userInput)) {
out.println("ok bye");
shutdown();
} else if ("send".equals(userInput)) {
storeMessage();
out.println("ok");
} else if ("to".equals(userInput.split("\\s+")[0])) {
msg.setTo(new ArrayList<>());
String[] emailAddresses = userInput.split("\\s+")[1].split(",");
logger.info("Split EMail addresses: " + Arrays.toString(emailAddresses));
int count = 0;
try {
for (String emailAddress : emailAddresses) {
logger.info("Current email address in msg.getTo(): " + emailAddress);
Email add = new Email(emailAddress);
if (this.domain.equals(add.getDomain())) {
logger.info("Address " + emailAddress + " belongs to this domain " + this.domain);
if (!this.userStorage.containsKey(add.getUsername())) {
logger.info("Our userStorage in domain " + this.domain + " does not contain user " + add.getUsername());
out.println("error unknown recipient " + add.toString());
} else {
logger.info("Address " + add.toString() + " belongs to this domain and user exists. Adding address to msg.To() field");
msg.addTo(add);
count++;
}
} else {
logger.info("Address " + emailAddress + " does not belong to this domain. Adding anyway...");
msg.addTo(add);
count++;
}
}
if (count != 0)
out.println("ok " + count);
} catch (MalformedInputException e) {
out.println(e.getMessage());
}
} else if ("from".equals(userInput.split("\\s+")[0])) {
try {
Email from = new Email(userInput.split("\\s+")[1]);
this.msg.setFrom(from);
out.println("ok");
} catch (MalformedInputException mie) {
out.println(mie.getMessage());
}
} else if ("subject".equals(userInput.split("\\s+")[0])) {
String subject = "";
if (userInput.split("\\s+").length > 1)
subject = userInput.split("\\s+", 2)[1];
msg.setSubject(subject);
out.println("ok");
} else if ("data".equals(userInput.split("\\s+")[0])) {
String data = userInput.split("\\s+", 2)[1];
msg.setData(data);
out.println("ok");
} else {
out.println("error protocol error");
shutdown();
}
}
} catch (InterruptedIOException ioe) {
logger.info("Received interrupt from parent. Shutting down...");
shutdown();
} catch (IOException e) {
logger.severe("Failed to get IO-Stream");
e.printStackTrace();
shutdown();
}
}
private synchronized void storeMessage() {
logger.info("Storing message " + msg.toString());
this.msg.setId(MailboxServer.id++);
boolean alreadyPresent;
for (Email recipient : this.msg.getTo()) {
alreadyPresent = false;
logger.info("storeMessage(): checking if msg " + msg.listMessage() + " already exists for recipient " + recipient.toString());
if (this.messageStorage.containsKey(recipient)) {
// Check if message already exists for user
for (Message m : this.messageStorage.get(recipient)) {
if (this.msg.getId().equals(m.getId())) {
logger.info("storeMessage(): msg " + msg.listMessage() + " already exists for recipient " + recipient.toString());
alreadyPresent = true;
break;
}
}
// Save only if message doesn't already exist
if (!alreadyPresent) {
this.messageStorage.get(recipient).add(this.msg);
}
}
}
this.msg = new Message();
}
public void shutdown() {
logger.info("Shutting down client connection " + this.toString());
try {
if (socket != null)
socket.close();
in.close();
out.close();
} catch (IOException e) {
logger.severe("Error closing socket and/or IO-streams");
e.printStackTrace();
}
Thread.currentThread().interrupt();
}
}

View File

@ -0,0 +1,75 @@
package dslab.mailbox;
import dslab.Email;
import dslab.Message;
import java.io.IOException;
import java.io.InterruptedIOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.logging.Logger;
public class DMTPListener extends Thread {
private final ServerSocket serverSocket;
private final Logger logger = Logger.getLogger(DMTPListener.class.getName());
private final ArrayList<DMTPConnection> clients = new ArrayList<>();
private final ExecutorService executorService = Executors.newCachedThreadPool();
private final ConcurrentHashMap<Email, LinkedList<Message>> messageStorage;
private final ConcurrentHashMap<String, String> userStorage;
private final String domain;
public DMTPListener(ServerSocket serverSocket, ConcurrentHashMap<Email, LinkedList<Message>> storage, ConcurrentHashMap<String, String> userStorage, String domain) {
this.serverSocket = serverSocket;
this.messageStorage = storage;
this.userStorage = userStorage;
this.domain = domain;
}
@Override
public void run() {
while (!Thread.currentThread().isInterrupted()) {
logger.finer("Waiting for request on serverSocket " + serverSocket.toString());
try {
Socket s = serverSocket.accept();
logger.fine("Processing incoming socket " + s.toString());
DMTPConnection dmtpConnection = new DMTPConnection(s, messageStorage, userStorage, domain);
clients.add(dmtpConnection);
executorService.submit(dmtpConnection);
} catch (InterruptedIOException | SocketException e) {
logger.finer("Received interrupt. Exiting " + this.toString());
this.shutdown();
} catch (IOException e) {
logger.severe("Error starting serverSocket " + serverSocket.toString());
e.printStackTrace();
this.shutdown();
}
}
}
public void shutdown() {
logger.finer("Shutting down DMTPListener " + this.toString());
for (DMTPConnection client : clients) {
if (client != null)
client.shutdown();
}
executorService.shutdown();
try {
if (!executorService.awaitTermination(60, TimeUnit.SECONDS)) {
executorService.shutdownNow();
if (!executorService.awaitTermination(60, TimeUnit.SECONDS))
System.err.println("Pool did not terminate");
}
} catch (InterruptedException ie) {
executorService.shutdownNow();
Thread.currentThread().interrupt();
}
this.interrupt();
}
}

View File

@ -1,12 +1,36 @@
package dslab.mailbox;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.util.LinkedList;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger;
import at.ac.tuwien.dsg.orvell.Shell;
import at.ac.tuwien.dsg.orvell.StopShellException;
import at.ac.tuwien.dsg.orvell.annotation.Command;
import dslab.ComponentFactory;
import dslab.Email;
import dslab.Message;
import dslab.util.Config;
public class MailboxServer implements IMailboxServer, Runnable {
private static final Logger logger = Logger.getLogger(MailboxServer.class.getName());
private final String domain;
private ServerSocket dmtpServerSocket;
private ServerSocket dmapServerSocket;
private final Shell shell;
private final Integer dmtpServerPort;
private final Integer dmapServerPort;
private DMTPListener dmtpListener;
private DMAPListener dmapListener;
private final ConcurrentHashMap<Email, LinkedList<Message>> messageStorage = new ConcurrentHashMap<>();
private final ConcurrentHashMap<String, String> userStorage = new ConcurrentHashMap<>();
public static volatile Integer id;
/**
* Creates a new server instance.
@ -17,17 +41,67 @@ public class MailboxServer implements IMailboxServer, Runnable {
* @param out the output stream to write console output to
*/
public MailboxServer(String componentId, Config config, InputStream in, PrintStream out) {
// TODO
this.domain = config.getString("domain");
Config userConfig = new Config(config.getString("users.config"));
// Load users from config into userStorage for authentication
for (String key : userConfig.listKeys()) {
userStorage.put(key, userConfig.getString(key));
}
// Load Email Addresses into messageStorage
for (String key : userStorage.keySet()) {
Email current = new Email(key, domain);
messageStorage.put(current, new LinkedList<>());
}
id = 0;
this.shell = new Shell(in, out);
this.shell.register(this);
this.shell.setPrompt("Mailboxserver> ");
this.dmtpServerPort = config.getInt("dmtp.tcp.port");
this.dmapServerPort = config.getInt("dmap.tcp.port");
}
@Override
public void run() {
// TODO
logger.info("Creating DMTP and DMAP serverSockets for MailboxServer + " + this.toString());
try {
this.dmtpServerSocket = new ServerSocket(dmtpServerPort);
this.dmapServerSocket = new ServerSocket(dmapServerPort);
} catch (IOException e) {
logger.severe("Error creating one of the two server sockets");
e.printStackTrace();
shutdown();
}
this.dmtpListener = new DMTPListener(this.dmtpServerSocket, this.messageStorage, this.userStorage, this.domain);
this.dmtpListener.start();
this.dmapListener = new DMAPListener(this.dmapServerSocket, this.messageStorage, this.userStorage);
this.dmapListener.start();
this.shell.run();
}
@Command
@Override
public void shutdown() {
// TODO
try {
if (dmtpServerSocket != null)
dmtpServerSocket.close();
this.dmtpListener.interrupt();
} catch (IOException e) {
logger.severe("Error closing DMTP serverSocket " + dmtpServerSocket.toString());
e.printStackTrace();
}
try {
if (dmapServerSocket != null)
dmapServerSocket.close();
this.dmapListener.interrupt();
} catch (IOException e) {
logger.severe("Error closing DMTP serverSocket " + dmapServerSocket.toString());
e.printStackTrace();
}
throw new StopShellException();
}
public static void main(String[] args) throws Exception {

View File

@ -0,0 +1,64 @@
package dslab.monitoring;
import java.io.IOException;
import java.io.InterruptedIOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.SocketException;
import java.nio.charset.StandardCharsets;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger;
public class MonitoringListener extends Thread {
private static final Logger logger = Logger.getLogger(MonitoringListener.class.getName());
private final DatagramSocket serverSocket;
private final ConcurrentHashMap<String, Integer> addresses;
private final ConcurrentHashMap<String, Integer> servers;
public MonitoringListener(DatagramSocket serverSocket, ConcurrentHashMap<String, Integer> addresses, ConcurrentHashMap<String, Integer> servers) {
this.serverSocket = serverSocket;
this.addresses = addresses;
this.servers = servers;
}
@Override
public void run() {
byte[] recvBuffer = new byte[1024];
while (!Thread.currentThread().isInterrupted()) {
logger.finer("Waiting for request on UDP serverSocket " + serverSocket.toString());
try {
DatagramPacket packet = new DatagramPacket(recvBuffer, recvBuffer.length);
serverSocket.receive(packet);
logger.fine("Processing incoming socket " + serverSocket.toString());
String receivedData = new String(packet.getData(), StandardCharsets.UTF_8).trim();
String server = receivedData.split("\\s+")[0];
String address = receivedData.split("\\s+")[1];
logger.info("Incoming packet contains server: " + server);
logger.info("Incoming packet contains address: " + address);
// Add/Update num of packets sent by server
if (!this.servers.containsKey(server))
this.servers.put(server, 1);
else
this.servers.put(server, this.servers.get(server) + 1);
// Add/Update num of packets sent for address
if (!this.addresses.containsKey(address))
this.addresses.put(address, 1);
else
this.addresses.put(address, this.addresses.get(address) + 1);
} catch (InterruptedIOException | SocketException e) {
logger.finer("Received interrupt. Exiting " + this.toString());
this.shutdown();
} catch (IOException e) {
logger.severe("Error starting serverSocket " + serverSocket.toString());
e.printStackTrace();
this.shutdown();
}
}
}
public void shutdown() {
logger.finer("Shutting down MonitoringListener " + this.toString());
this.serverSocket.close();
this.interrupt();
}
}

View File

@ -1,12 +1,27 @@
package dslab.monitoring;
import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.net.DatagramSocket;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Logger;
import at.ac.tuwien.dsg.orvell.Shell;
import at.ac.tuwien.dsg.orvell.StopShellException;
import at.ac.tuwien.dsg.orvell.annotation.Command;
import dslab.ComponentFactory;
import dslab.util.Config;
public class MonitoringServer implements IMonitoringServer {
private static final Logger logger = Logger.getLogger(MonitoringServer.class.getName());
private DatagramSocket serverSocket;
private final Shell shell;
private final Integer serverPort;
private MonitoringListener monitoringListener;
private final ConcurrentHashMap<String, Integer> addresses = new ConcurrentHashMap<>();
private final ConcurrentHashMap<String, Integer> servers = new ConcurrentHashMap<>();
/**
* Creates a new server instance.
@ -17,27 +32,50 @@ public class MonitoringServer implements IMonitoringServer {
* @param out the output stream to write console output to
*/
public MonitoringServer(String componentId, Config config, InputStream in, PrintStream out) {
// TODO
this.shell = new Shell(in, out);
this.shell.register(this);
this.shell.setPrompt("MonitoringServer> ");
this.serverPort = config.getInt("udp.port");
}
@Override
public void run() {
// TODO
logger.info("Creating UDP serverSocket for " + this.toString());
try {
this.serverSocket = new DatagramSocket(serverPort);
} catch (IOException e) {
logger.severe("Error creating serverSocket " + serverSocket.toString());
e.printStackTrace();
shutdown();
}
this.monitoringListener = new MonitoringListener(serverSocket, addresses, servers);
this.monitoringListener.start();
this.shell.run();
}
@Command
@Override
public void addresses() {
// TODO
for (String address : addresses.keySet()) {
this.shell.out().println(address + " " + addresses.get(address));
}
}
@Command
@Override
public void servers() {
// TODO
for (String server : servers.keySet()) {
this.shell.out().println(server + " " + servers.get(server));
}
}
@Command
@Override
public void shutdown() {
// TODO
if (serverSocket != null)
serverSocket.close();
this.monitoringListener.interrupt();
throw new StopShellException();
}
public static void main(String[] args) throws Exception {

View File

@ -0,0 +1,129 @@
package dslab.transfer;
import dslab.Email;
import dslab.Message;
import dslab.exception.MalformedInputException;
import dslab.exception.MissingInputException;
import java.io.*;
import java.net.Socket;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.logging.Logger;
public class ClientConnection implements Runnable {
Logger logger = Logger.getLogger(ClientConnection.class.getName());
private final Socket socket;
private PrintWriter out;
private BufferedReader in;
private Message msg = new Message();
public ClientConnection(Socket connection) {
this.socket = connection;
}
@Override
public void run() {
logger.finer("Preparing for DMTP communication in " + this.toString());
try {
this.out = new PrintWriter(socket.getOutputStream(), true);
this.in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
out.println("ok DMTP");
String userInput;
try {
if (!("begin".equals(in.readLine()))) {
out.println("error protocol error");
shutdown();
}
} catch (SocketException e) {
// Thrown if socket has already been closed by shutdown() method
// TODO maybe send message that connection has been closed by server?
logger.finer("Received interrupt. Exiting " + this.toString());
shutdown();
}
out.println("ok");
while (!Thread.currentThread().isInterrupted() && (userInput = in.readLine()) != null) {
if ("quit".equals(userInput)) {
out.println("ok bye");
shutdown();
} else if ("send".equals(userInput)) {
try {
sendMessage();
out.println("ok");
} catch (MissingInputException e) {
out.println(e.getMessage());
}
} else if ("to".equals(userInput.split("\\s+")[0])) {
msg.setTo(new ArrayList<>());
String[] emailAddresses = userInput.split("\\s+")[1].split(",");
int count = 0;
try {
for (String emailAddress : emailAddresses) {
msg.addTo(new Email(emailAddress));
count++;
}
out.println("ok " + count);
} catch (MalformedInputException mie) {
out.println(mie.getMessage());
}
} else if ("from".equals(userInput.split("\\s+")[0])) {
try {
Email from = new Email(userInput.split("\\s+")[1]);
this.msg.setFrom(from);
out.println("ok");
} catch (MalformedInputException mie) {
out.println(mie.getMessage());
}
} else if ("subject".equals(userInput.split("\\s+")[0])) {
String subject = "";
if (userInput.split("\\s+").length > 1)
subject = userInput.split("\\s+", 2)[1];
logger.info("Setting subject to: " + subject);
msg.setSubject(subject);
out.println("ok");
} else if ("data".equals(userInput.split("\\s+")[0])) {
String data = "";
if (userInput.split("\\s+").length > 1)
data = userInput.split("\\s+", 2)[1];
logger.info("Setting data to: " + data);
msg.setData(data);
out.println("ok");
} else {
out.println("error protocol error");
shutdown();
}
}
} catch (InterruptedIOException ioe) {
logger.info("Received interrupt from parent. Shutting down...");
shutdown();
} catch (IOException e) {
logger.severe("Failed to get IO-Stream");
shutdown();
}
}
public void shutdown() {
logger.info("Shutting down client connection " + this.toString());
try {
if (socket != null)
socket.close();
in.close();
out.close();
} catch (IOException e) {
logger.severe("Error closing socket and/or IO-streams");
e.printStackTrace();
}
Thread.currentThread().interrupt();
}
public void sendMessage() throws MissingInputException {
this.msg.allFieldsSet();
TransferServer.Producer producer = new TransferServer.Producer(this.msg);
new Thread(producer).start();
this.msg = new Message();
}
}

View File

@ -0,0 +1,64 @@
package dslab.transfer;
import java.io.IOException;
import java.io.InterruptedIOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.TimeUnit;
import java.util.logging.Logger;
public class ClientListener extends Thread {
private final ServerSocket serverSocket;
private final Logger logger = Logger.getLogger(ClientListener.class.getName());
private final ArrayList<ClientConnection> clients = new ArrayList<>();
private final ExecutorService executorService = Executors.newCachedThreadPool();
public ClientListener(ServerSocket serverSocket) {
this.serverSocket = serverSocket;
}
@Override
public void run() {
while (!Thread.currentThread().isInterrupted()) {
logger.finer("Waiting for request on serverSocket " + serverSocket.toString());
try {
Socket s = serverSocket.accept();
logger.fine("Processing incoming socket " + s.toString());
ClientConnection clientConnection = new ClientConnection(s);
clients.add(clientConnection);
executorService.submit(clientConnection);
} catch (InterruptedIOException | SocketException e) {
logger.finer("Received interrupt. Exiting " + this.toString());
this.shutdown();
} catch (IOException e) {
logger.severe("Error starting serverSocket " + serverSocket.toString());
e.printStackTrace();
this.shutdown();
}
}
}
public void shutdown() {
logger.finer("Shutting down ClientListener " + this.toString());
for (ClientConnection client : clients) {
if (client != null)
client.shutdown();
}
executorService.shutdown();
try {
if (!executorService.awaitTermination(60, TimeUnit.SECONDS)) {
executorService.shutdownNow();
if (!executorService.awaitTermination(60, TimeUnit.SECONDS))
System.err.println("Pool did not terminate");
}
} catch (InterruptedException ie) {
executorService.shutdownNow();
Thread.currentThread().interrupt();
}
this.interrupt();
}
}

View File

@ -1,12 +1,32 @@
package dslab.transfer;
import java.io.InputStream;
import java.io.PrintStream;
import java.io.*;
import java.net.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.concurrent.BlockingQueue;
import java.util.concurrent.LinkedBlockingQueue;
import java.util.logging.Logger;
import at.ac.tuwien.dsg.orvell.Shell;
import at.ac.tuwien.dsg.orvell.StopShellException;
import at.ac.tuwien.dsg.orvell.annotation.Command;
import dslab.ComponentFactory;
import dslab.Email;
import dslab.Message;
import dslab.exception.MalformedInputException;
import dslab.exception.UnknownDomainException;
import dslab.util.Config;
public class TransferServer implements ITransferServer, Runnable {
private static final Logger logger = Logger.getLogger(TransferServer.class.getName());
private ServerSocket serverSocket;
private final Shell shell;
private final Integer serverPort;
public static final HashMap<String, Integer> mailboxServers = new HashMap<>();
public static volatile BlockingQueue<Message> blockingQueue = new LinkedBlockingQueue<>(10);
private final Consumer consumer;
public static final Object lock = new Object();
/**
* Creates a new server instance.
@ -17,17 +37,46 @@ public class TransferServer implements ITransferServer, Runnable {
* @param out the output stream to write console output to
*/
public TransferServer(String componentId, Config config, InputStream in, PrintStream out) {
// TODO
Config univerze = new Config("mailbox-univer-ze.properties");
Config earthplanet = new Config("mailbox-earth-planet.properties");
mailboxServers.put(univerze.getString("domain"), univerze.getInt("dmtp.tcp.port"));
mailboxServers.put(earthplanet.getString("domain"), earthplanet.getInt("dmtp.tcp.port"));
String monitoringHost = config.getString("monitoring.host");
Integer monitoringPort = config.getInt("monitoring.port");
this.serverPort = config.getInt("tcp.port");
this.consumer = new Consumer(mailboxServers, monitoringHost, monitoringPort, "127.0.0.1", this.serverPort);
this.shell = new Shell(in, out);
this.shell.register(this);
this.shell.setPrompt("Transferserver> ");
}
@Override
public void run() {
// TODO
logger.info("Creating serverSocket for " + this.toString());
try {
this.serverSocket = new ServerSocket(serverPort);
} catch (IOException e) {
logger.severe("Error creating serverSocket " + serverSocket.toString());
e.printStackTrace();
shutdown();
}
new ClientListener(serverSocket).start();
this.consumer.start();
this.shell.run();
}
@Command
@Override
public void shutdown() {
// TODO
try {
if (serverSocket != null)
serverSocket.close();
} catch (IOException e) {
logger.severe("Error closing serverSocket " + serverSocket.toString());
e.printStackTrace();
}
this.consumer.interrupt();
throw new StopShellException();
}
public static void main(String[] args) throws Exception {
@ -35,4 +84,206 @@ public class TransferServer implements ITransferServer, Runnable {
server.run();
}
static class Producer extends Thread {
private final Message msg;
Producer(Message msg) {
this.msg = msg;
}
@Override
public void run() {
try {
produce();
} catch (InterruptedException e) {
logger.info("Producer thread has been interrupted. Exiting..." + this.toString());
shutdown();
}
}
private void produce() throws InterruptedException {
synchronized (lock) {
while (blockingQueue.size() == 10) {
lock.wait();
}
blockingQueue.put(msg);
logger.info("Added message " + msg.toString() + " to queue");
lock.notify();
}
}
private void shutdown() {
Thread.currentThread().interrupt();
}
}
static class Consumer extends Thread {
private final HashMap<String, Integer> mailboxServers;
private final String monitoringHost;
private final Integer monitoringPort;
private final String transferHost;
private final Integer transferPort;
Consumer(HashMap<String, Integer> mailboxServers,
String monitoringHost,
Integer monitoringPort,
String transferHost,
Integer transferPort) {
this.mailboxServers = mailboxServers;
this.monitoringHost = monitoringHost;
this.monitoringPort = monitoringPort;
this.transferHost = transferHost;
this.transferPort = transferPort;
}
@Override
public void run() {
try {
consume();
} catch (InterruptedException e) {
logger.info("Consumer thread has been interrupted. Exiting..." + this.toString());
shutdown();
}
}
private void consume() throws InterruptedException {
while (!Thread.currentThread().isInterrupted()) {
synchronized (lock) {
while (blockingQueue.isEmpty()) {
logger.info("Queue currently empty. Waiting for messages to appear...");
lock.wait();
}
logger.info("Queue not empty. Processing message...");
Message msg = blockingQueue.take();
logger.info("Took message " + msg.toString() + " from queue");
HashMap<String, Boolean> sent = new HashMap<>();
sent.put("earth.planet", false);
sent.put("univer.ze", false);
for (Email recipient : msg.getTo()) {
logger.info("msg.getTo() contains: " + msg.getTo().toString());
logger.info("Trying to send message to " + recipient.toString());
int port;
try {
port = domainLookup(recipient);
logger.info("Domain lookup successful. Port is: " + port);
if (!sent.get(recipient.getDomain())) {
replayMessage(msg, port);
sent.put(recipient.getDomain(), true);
}
} catch (UnknownDomainException e) {
sendErrorMail(msg, e.getMessage());
}
}
lock.notify();
}
}
}
private void replayMessage(Message msg, int port) {
logger.info("Replaying message for message: " + msg.toString() + " on port " + port);
try {
Socket socket = new Socket("127.0.0.1", port);
PrintWriter socketOut = new PrintWriter(socket.getOutputStream(), true);
BufferedReader socketIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
socketIn.readLine();
socketOut.println("begin");
socketIn.readLine();
socketOut.println("subject " + msg.getSubject());
socketIn.readLine();
socketOut.println("data " + msg.getData());
socketIn.readLine();
socketOut.println("to " + msg.printTo());
socketIn.readLine();
socketOut.println("from " + msg.getFrom().toString());
socketIn.readLine();
socketOut.println("send");
String result = socketIn.readLine();
if (result.startsWith("error"))
sendErrorMail(msg, result);
socketIn.close();
socketOut.close();
socket.close();
sendMonitoringMessage(msg);
} catch (IOException e) {
sendErrorMail(msg, "error failed to connect to server");
}
}
private int domainLookup(Email email) throws UnknownDomainException {
logger.info("Performing domain lookup for address " + email.toString());
if (this.mailboxServers.containsKey(email.getDomain()))
return this.mailboxServers.get(email.getDomain());
throw new UnknownDomainException("error domain not found: " + email.getDomain());
}
private void sendErrorMail(Message msg, String error) {
logger.info("Trying to send error mail to address " + msg.getFrom());
Message errorMessage = msg;
int port;
try {
port = domainLookup(errorMessage.getFrom());
} catch (UnknownDomainException e) {
logger.severe("Sending error mail failed because sender domain is unknown");
return;
}
ArrayList<Email> newTo = new ArrayList<>();
newTo.add(errorMessage.getFrom());
errorMessage.setTo(newTo);
try {
errorMessage.setFrom(new Email("mailer@127.0.0.1"));
} catch (MalformedInputException e) {
logger.severe("The server's E-Mail address is wrong. This should not be happening!");
e.printStackTrace();
return;
}
try {
Socket socket = new Socket("127.0.0.1", port);
PrintWriter socketOut = new PrintWriter(socket.getOutputStream(), true);
BufferedReader socketIn = new BufferedReader(new InputStreamReader(socket.getInputStream()));
socketIn.readLine();
socketOut.println("begin");
socketIn.readLine();
socketOut.println("subject " + errorMessage.getSubject());
socketIn.readLine();
socketOut.println("data " + error);
socketIn.readLine();
socketOut.println("to " + errorMessage.printTo());
socketIn.readLine();
socketOut.println("from " + errorMessage.getFrom().toString());
socketIn.readLine();
socketOut.println("send");
String result = socketIn.readLine();
if (result.startsWith("error"))
logger.severe("Sending error mail failed: " + result);
socketIn.close();
socketOut.close();
socket.close();
sendMonitoringMessage(errorMessage);
} catch (IOException e) {
logger.severe("Sending error mail failed because socket communication failed");
}
}
private void sendMonitoringMessage(Message msg) {
DatagramSocket socket;
try {
socket = new DatagramSocket();
} catch (SocketException e) {
logger.severe("Failed to create DatagramSocket!");
return;
}
byte[] sendBuffer = (transferHost + ":" + transferPort + " " + msg.getFrom().toString()).getBytes();
try {
DatagramPacket packet = new DatagramPacket(sendBuffer, sendBuffer.length, Inet4Address.getByName(monitoringHost), monitoringPort);
socket.send(packet);
} catch (IOException e) {
logger.severe("Failed to send packet to " + monitoringHost + " on port " + monitoringPort);
}
socket.close();
}
private void shutdown() {
Thread.currentThread().interrupt();
}
}
}

View File

@ -1,10 +1,8 @@
# TODO: replace host and port with that of your server
transfer.host=127.0.0.1
transfer.port=port_range
transfer.port=11620
transfer.email=arthur@earth.planet
# TODO: replace host and port with that of your server
mailbox.host=127.0.0.1
mailbox.port=port_range+3
mailbox.port=11623
mailbox.user=arthur
mailbox.password=23456

View File

@ -1,10 +1,8 @@
# TODO: replace host and port with that of your server
transfer.host=127.0.0.1
transfer.port=port_range
transfer.port=11620
transfer.email=trillian@earth.planet
# TODO: replace host and port with that of your server
mailbox.host=127.0.0.1
mailbox.port=port_range+3
mailbox.port=11623
mailbox.user=trillian
mailbox.password=12345

View File

@ -1,10 +1,8 @@
# TODO: replace host and port with that of your server
transfer.host=127.0.0.1
transfer.port=port_range+1
transfer.port=11621
transfer.email=zaphod@univer.ze
# TODO: replace host and port with that of your server
mailbox.host=127.0.0.1
mailbox.port=port_range+5
mailbox.port=11625
mailbox.user=zaphod
mailbox.password=12345

View File

@ -1,4 +1,3 @@
# <domain>=<socket-address>
# TODO: replace ports with the ports that your mailbox servers use
earth.planet=127.0.0.1:port_range+2
univer.ze=127.0.0.1:port_range+4
earth.planet=127.0.0.1:11622
univer.ze=127.0.0.1:11624

View File

@ -1,10 +1,8 @@
# TCP port used for the DMTP server socket
# TODO: REPLACE with real value such as 16502 - considering the port range associated with your account - you have received after Lab 0 a port range (beginning_of_the_range, end_of_the_range)
dmtp.tcp.port=port_range+2
dmtp.tcp.port=11622
# TCP port used for the DMAP server socket
# TODO: REPLACE with real value such as 16503 - considering the port range associated with your account - you have received after Lab 0 a port range (beginning_of_the_range, end_of_the_range)
dmap.tcp.port=port_range+3
dmap.tcp.port=11623
# mail domain managed by the mailbox server
domain=earth.planet
@ -21,5 +19,4 @@ root_id=root-nameserver
registry.host=localhost
# RMI registry port
# TODO: REPLACE with real value such as 16509 - considering the port range associated with your account - you have received after Lab 0 a port range (beginning_of_the_range, end_of_the_range)
registry.port=port_range+9
registry.port=11629

View File

@ -1,10 +1,8 @@
# TCP port used for the DMTP server socket
# TODO: REPLACE with real value such as 16504 - considering the port range associated with your account - you have received after Lab 0 a port range (beginning_of_the_range, end_of_the_range)
dmtp.tcp.port=port_range+4
dmtp.tcp.port=11624
# TCP port used for the DMAP server socket
# TODO: REPLACE with real value such as 16505 - considering the port range associated with your account - you have received after Lab 0 a port range (beginning_of_the_range, end_of_the_range)
dmap.tcp.port=port_range+5
dmap.tcp.port=11625
# mail domain managed by the mailbox server
domain=univer.ze
@ -21,5 +19,4 @@ root_id=root-nameserver
registry.host=localhost
# RMI registry port
# TODO: REPLACE with real value such as 16509 - considering the port range associated with your account - you have received after Lab 0 a port range (beginning_of_the_range, end_of_the_range)
registry.port=port_range+9
registry.port=11629

View File

@ -1,3 +1,2 @@
# UDP port used for accepting monitoring packets
# TODO: REPLACE with real value such as 16508 - considering the port range associated with your account - you have received after Lab 0 a port range (beginning_of_the_range, end_of_the_range)
udp.port=port_range+8
udp.port=11628

View File

@ -5,8 +5,7 @@ root_id=root-nameserver
registry.host=localhost
# registry port
# TODO: REPLACE with real value such as 16509 - considering the port range associated with your account - you have received after Lab 0 a port range (beginning_of_the_range, end_of_the_range)
registry.port=port_range+9
registry.port=11629
# managed domain

View File

@ -5,8 +5,7 @@ root_id=root-nameserver
registry.host=localhost
# registry port
# TODO: REPLACE with real value such as 16509 - considering the port range associated with your account - you have received after Lab 0 a port range (beginning_of_the_range, end_of_the_range)
registry.port=port_range+9
registry.port=11629
# managed domain

View File

@ -5,5 +5,4 @@ root_id=root-nameserver
registry.host=localhost
# registry port
# TODO: REPLACE with real value such as 16509 - considering the port range associated with your account - you have received after Lab 0 a port range (beginning_of_the_range, end_of_the_range)
registry.port=port_range+9
registry.port=11629

View File

@ -5,8 +5,7 @@ root_id=root-nameserver
registry.host=localhost
# registry port
# TODO: REPLACE with real value such as 16509 - considering the port range associated with your account - you have received after Lab 0 a port range (beginning_of_the_range, end_of_the_range)
registry.port=port_range+9
registry.port=11629
# managed domain

View File

@ -1,11 +1,9 @@
# TCP port used for the DMTP server socket
# TODO: REPLACE with real value such as 16500 - considering the port range associated with your account - you have received after Lab 0 a port range (beginning_of_the_range, end_of_the_range)
tcp.port=port_range
tcp.port=11620
# UDP socket address of the monitoring server
monitoring.host=127.0.0.1
# TODO: REPLACE with the real value of the monitoring server port
monitoring.port=port_range+8
monitoring.port=11628
# ============================================= Required for Assignment 2
@ -16,5 +14,4 @@ root_id=root-nameserver
registry.host=localhost
# RMI registry port
# TODO: REPLACE with real value such as 16509 - considering the port range associated with your account - you have received after Lab 0 a port range (beginning_of_the_range, end_of_the_range)
registry.port=port_range+9
registry.port=11629

View File

@ -1,11 +1,9 @@
# TCP port used for the DMTP server socket
# TODO: REPLACE with real value such as 16501 - considering the port range associated with your account - you have received after Lab 0 a port range (beginning_of_the_range, end_of_the_range)
tcp.port=port_range+1
tcp.port=11621
# UDP socket address of the monitoring server
monitoring.host=127.0.0.1
# TODO: REPLACE with the real value of the monitoring server port
monitoring.port=port_range+8
monitoring.port=11628
# ============================================= Required for Assignment 2
@ -16,5 +14,4 @@ root_id=root-nameserver
registry.host=localhost
# RMI registry port
# TODO: REPLACE with real value such as 16509 - considering the port range associated with your account - you have received after Lab 0 a port range (beginning_of_the_range, end_of_the_range)
registry.port=port_range+9
registry.port=11629