diff --git a/briar-api/src/net/sf/briar/api/ContactId.java b/briar-api/src/net/sf/briar/api/ContactId.java index d8a9f7a388c4ab7f1df97bec91c0c61766670e8b..7875f596d4255dd74f2451ed16b2c365271e70b5 100644 --- a/briar-api/src/net/sf/briar/api/ContactId.java +++ b/briar-api/src/net/sf/briar/api/ContactId.java @@ -17,13 +17,13 @@ public class ContactId { } @Override - public boolean equals(Object o) { - if(o instanceof ContactId) return id == ((ContactId) o).id; - return false; + public int hashCode() { + return id; } @Override - public int hashCode() { - return id; + public boolean equals(Object o) { + if(o instanceof ContactId) return id == ((ContactId) o).id; + return false; } } diff --git a/briar-api/src/net/sf/briar/api/protocol/Transport.java b/briar-api/src/net/sf/briar/api/protocol/Transport.java index 707d84fa7ef8e5c95e934b0024ac24fd089f8d51..4ac071160b95a1d5ce3e7e28cb68c4f26473d365 100644 --- a/briar-api/src/net/sf/briar/api/protocol/Transport.java +++ b/briar-api/src/net/sf/briar/api/protocol/Transport.java @@ -3,37 +3,40 @@ package net.sf.briar.api.protocol; import java.util.Map; import java.util.TreeMap; -public class Transport extends TreeMap<String, String> { - - private static final long serialVersionUID = 4900420175715429560L; +public class Transport { private final TransportId id; + private final TreeMap<String, String> properties; public Transport(TransportId id, Map<String, String> p) { - super(p); this.id = id; + properties = new TreeMap<String, String>(p); } public Transport(TransportId id) { - super(); this.id = id; + properties = new TreeMap<String, String>(); } public TransportId getId() { return id; } - @Override - public int hashCode() { - return id.hashCode(); + public Map<String, String> getProperties() { + return properties; } @Override public boolean equals(Object o) { if(o instanceof Transport) { Transport t = (Transport) o; - return id.equals(t.id) && super.equals(o); + return id.equals(t.id) && properties.equals(t.properties); } return false; } + + @Override + public int hashCode() { + return id.hashCode(); + } } diff --git a/briar-core/src/net/sf/briar/db/JdbcDatabase.java b/briar-core/src/net/sf/briar/db/JdbcDatabase.java index 49a336cabb67b15644e09cd5562b2e2102ea05ca..f44accc83a35922a20d4fca113c173884ed4881e 100644 --- a/briar-core/src/net/sf/briar/db/JdbcDatabase.java +++ b/briar-core/src/net/sf/briar/db/JdbcDatabase.java @@ -1207,7 +1207,7 @@ abstract class JdbcDatabase implements Database<Connection> { t = new Transport(id); transports.add(t); } - t.put(rs.getString(2), rs.getString(3)); + t.getProperties().put(rs.getString(2), rs.getString(3)); lastId = id; } rs.close(); @@ -2763,7 +2763,7 @@ abstract class JdbcDatabase implements Database<Connection> { int batchSize = 0; for(Transport t : transports) { ps.setBytes(2, t.getId().getBytes()); - for(Entry<String, String> e1 : t.entrySet()) { + for(Entry<String, String> e1 : t.getProperties().entrySet()) { ps.setString(3, e1.getKey()); ps.setString(4, e1.getValue()); ps.addBatch(); diff --git a/briar-core/src/net/sf/briar/protocol/GroupImpl.java b/briar-core/src/net/sf/briar/protocol/GroupImpl.java index 88f63622d82873303953c8305202a117842a4ad9..d3a84ba5ac8df3eae511d476736dfbc76a5459bb 100644 --- a/briar-core/src/net/sf/briar/protocol/GroupImpl.java +++ b/briar-core/src/net/sf/briar/protocol/GroupImpl.java @@ -28,12 +28,12 @@ class GroupImpl implements Group { } @Override - public boolean equals(Object o) { - return o instanceof Group && id.equals(((Group) o).getId()); + public int hashCode() { + return id.hashCode(); } @Override - public int hashCode() { - return id.hashCode(); + public boolean equals(Object o) { + return o instanceof Group && id.equals(((Group) o).getId()); } } diff --git a/briar-core/src/net/sf/briar/protocol/MessageImpl.java b/briar-core/src/net/sf/briar/protocol/MessageImpl.java index 505f9e621848441ed5a460baaae9f924e526d754..3b6c739c23fda76de5137ab5c8766a008feec6e8 100644 --- a/briar-core/src/net/sf/briar/protocol/MessageImpl.java +++ b/briar-core/src/net/sf/briar/protocol/MessageImpl.java @@ -72,12 +72,12 @@ class MessageImpl implements Message { } @Override - public boolean equals(Object o) { - return o instanceof Message && id.equals(((Message) o).getId()); + public int hashCode() { + return id.hashCode(); } @Override - public int hashCode() { - return id.hashCode(); + public boolean equals(Object o) { + return o instanceof Message && id.equals(((Message) o).getId()); } } diff --git a/briar-core/src/net/sf/briar/protocol/ProtocolWriterImpl.java b/briar-core/src/net/sf/briar/protocol/ProtocolWriterImpl.java index d7bebf4e2e64c5edb3b39aa82e735ab919272605..fd100d561edd0c93861dbfd3459f2a53b9d73eed 100644 --- a/briar-core/src/net/sf/briar/protocol/ProtocolWriterImpl.java +++ b/briar-core/src/net/sf/briar/protocol/ProtocolWriterImpl.java @@ -148,7 +148,7 @@ class ProtocolWriterImpl implements ProtocolWriter { for(Transport p : t.getTransports()) { w.writeStructId(Types.TRANSPORT); w.writeBytes(p.getId().getBytes()); - w.writeMap(p); + w.writeMap(p.getProperties()); } w.writeListEnd(); w.writeInt64(t.getTimestamp()); diff --git a/briar-tests/src/net/sf/briar/db/TestMessage.java b/briar-tests/src/net/sf/briar/db/TestMessage.java index 4dbe7584a5b6296beafa3ccc47d8352ed6e869ea..bf25200e04bcb18f5deb916718fd78182f270594 100644 --- a/briar-tests/src/net/sf/briar/db/TestMessage.java +++ b/briar-tests/src/net/sf/briar/db/TestMessage.java @@ -78,12 +78,12 @@ class TestMessage implements Message { } @Override - public boolean equals(Object o) { - return o instanceof Message && id.equals(((Message)o).getId()); + public int hashCode() { + return id.hashCode(); } @Override - public int hashCode() { - return id.hashCode(); + public boolean equals(Object o) { + return o instanceof Message && id.equals(((Message)o).getId()); } } diff --git a/briar-tests/src/net/sf/briar/protocol/ConstantsTest.java b/briar-tests/src/net/sf/briar/protocol/ConstantsTest.java index e4c6af3a1a9a52e32c31819b974701b0521addd4..5a438af49572a63ca6cb24d734b2d809e68f474d 100644 --- a/briar-tests/src/net/sf/briar/protocol/ConstantsTest.java +++ b/briar-tests/src/net/sf/briar/protocol/ConstantsTest.java @@ -15,6 +15,7 @@ import java.security.PrivateKey; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; +import java.util.Map; import net.sf.briar.BriarTestCase; import net.sf.briar.TestUtils; @@ -158,10 +159,11 @@ public class ConstantsTest extends BriarTestCase { for(int i = 0; i < MAX_TRANSPORTS; i++) { TransportId id = new TransportId(TestUtils.getRandomId()); Transport t = new Transport(id); + Map<String, String> m = t.getProperties(); for(int j = 0; j < MAX_PROPERTIES_PER_TRANSPORT; j++) { String key = createRandomString(MAX_PROPERTY_LENGTH); String value = createRandomString(MAX_PROPERTY_LENGTH); - t.put(key, value); + m.put(key, value); } transports.add(t); }