Index: /trunk/autoquest-plugin-http-test/pom.xml
===================================================================
--- /trunk/autoquest-plugin-http-test/pom.xml	(revision 1598)
+++ /trunk/autoquest-plugin-http-test/pom.xml	(revision 1599)
@@ -21,3 +21,10 @@
         <tested-artifactId>autoquest-plugin-http</tested-artifactId>
     </properties>
+    <dependencies>
+        <dependency>
+            <groupId>nl.jqno.equalsverifier</groupId>
+            <artifactId>equalsverifier</artifactId>
+            <version>1.1.3</version>
+        </dependency>
+    </dependencies>
 </project>
Index: /trunk/autoquest-plugin-http-test/src/test/java/de/ugoe/cs/autoquest/http/eventcore/SOAPEventTest.java
===================================================================
--- /trunk/autoquest-plugin-http-test/src/test/java/de/ugoe/cs/autoquest/http/eventcore/SOAPEventTest.java	(revision 1599)
+++ /trunk/autoquest-plugin-http-test/src/test/java/de/ugoe/cs/autoquest/http/eventcore/SOAPEventTest.java	(revision 1599)
@@ -0,0 +1,39 @@
+//   Copyright 2012 Georg-August-Universität Göttingen, Germany
+//
+//   Licensed under the Apache License, Version 2.0 (the "License");
+//   you may not use this file except in compliance with the License.
+//   You may obtain a copy of the License at
+//
+//       http://www.apache.org/licenses/LICENSE-2.0
+//
+//   Unless required by applicable law or agreed to in writing, software
+//   distributed under the License is distributed on an "AS IS" BASIS,
+//   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//   See the License for the specific language governing permissions and
+//   limitations under the License.
+
+package de.ugoe.cs.autoquest.http.eventcore;
+
+import nl.jqno.equalsverifier.EqualsVerifier;
+import nl.jqno.equalsverifier.Warning;
+
+import org.junit.Test;
+
+import de.ugoe.cs.autoquest.plugin.http.eventcore.SOAPEventType;
+
+/**
+ * <p>
+ * TODO comment
+ * </p>
+ * 
+ * @author Patrick Harms
+ */
+public class SOAPEventTest {
+
+    @Test
+    public void test_EqualsContract_01() {
+        EqualsVerifier.forClass(SOAPEventType.class)
+            .suppress(Warning.NONFINAL_FIELDS).withRedefinedSuperclass().verify();
+    }
+
+}
Index: /trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/HTTPLogParser.java
===================================================================
--- /trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/HTTPLogParser.java	(revision 1598)
+++ /trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/HTTPLogParser.java	(revision 1599)
@@ -104,10 +104,11 @@
         
         try {
-			parseFile(new FileInputStream(file));
-		} catch (FileNotFoundException e) {
-			Console.printerr("Error parsing file + " + file.getName());
+            parseFile(new FileInputStream(file));
+        }
+        catch (FileNotFoundException e) {
+            Console.printerr("Error parsing file + " + file.getName());
             Console.logException(e);
             return;
-		}
+        }
     }
     
Index: /trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/commands/CMDparseDirHTTP.java
===================================================================
--- /trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/commands/CMDparseDirHTTP.java	(revision 1598)
+++ /trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/commands/CMDparseDirHTTP.java	(revision 1599)
@@ -71,5 +71,5 @@
 
         Collection<List<Event>> sequences = parser.getSequences();
-
+        
         if (GlobalDataContainer.getInstance().addData(sequencesName, sequences)) {
             CommandHelpers.dataOverwritten(sequencesName);
@@ -104,5 +104,5 @@
             }
             catch (Exception e) {
-                Console.printerrln("Could not parse " + source + ": " + e.getMessage());
+                Console.printerrln("Could not parse " + source + ": " + e);
             }
         }
Index: /trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/eventcore/HTTPEventType.java
===================================================================
--- /trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/eventcore/HTTPEventType.java	(revision 1598)
+++ /trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/eventcore/HTTPEventType.java	(revision 1599)
@@ -136,9 +136,20 @@
             HTTPEventType other = (HTTPEventType) obj;
             
+            if (!other.getClass().isAssignableFrom(this.getClass())) {
+                return false;
+            }
+            
+            if (exchange == null) {
+                return other.exchange == null;
+            }
+            else if (other.exchange == null) {
+                return false;
+            }
+            
             HttpRequest request1 = exchange.getRequest();
             HttpRequest request2 = other.exchange.getRequest();
             
-            return (HTTPUtils.equals(exchange.getSender(), other.exchange.getSender()) &&
-                    HTTPUtils.equals(exchange.getReceiver(), other.exchange.getReceiver()) &&
+            // do not compare the sender, as this may change
+            return (HTTPUtils.equals(exchange.getReceiver(), other.exchange.getReceiver()) &&
                     HTTPUtils.equals(request1.getMethod(), request2.getMethod()) &&
                     HTTPUtils.equals(request1.getProtocol(), request2.getProtocol()) &&
@@ -155,8 +166,13 @@
     @Override
     public int hashCode() {
-        return
-            exchange.getRequest().getMethod().hashCode() +
-            exchange.getRequest().getProtocol().hashCode() +
-            exchange.getRequest().getUrl().hashCode();
+        if (exchange != null) {
+            return
+                exchange.getRequest().getMethod().hashCode() +
+                exchange.getRequest().getProtocol().hashCode() +
+                exchange.getRequest().getUrl().hashCode();
+        }
+        else {
+            return 0;
+        }
     }
 
Index: /trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/eventcore/SOAPEventType.java
===================================================================
--- /trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/eventcore/SOAPEventType.java	(revision 1598)
+++ /trunk/autoquest-plugin-http/src/main/java/de/ugoe/cs/autoquest/plugin/http/eventcore/SOAPEventType.java	(revision 1599)
@@ -36,5 +36,5 @@
  * @author Patrick Harms
  */
-public class SOAPEventType extends HTTPEventType {
+public final class SOAPEventType extends HTTPEventType {
 
     /**  */
@@ -190,4 +190,8 @@
         }
         else if (obj instanceof SOAPEventType) {
+            if (!obj.getClass().isAssignableFrom(this.getClass())) {
+                return false;
+            }
+            
             return
                 super.equals(obj) &&
@@ -204,5 +208,10 @@
     @Override
     public int hashCode() {
-        return super.hashCode() + calledMethod.hashCode();
+        if (calledMethod != null) {
+            return super.hashCode() + calledMethod.hashCode();
+        }
+        else {
+            return super.hashCode();
+        }
     }
 
