Skip to content

Commit

Permalink
ISPN-7631 Cache.entrySet() entries don't implement Map.Entry.equals()…
Browse files Browse the repository at this point in the history
… correctly
  • Loading branch information
pruivo authored and wburns committed Apr 21, 2017
1 parent 308b9f2 commit ab69a96
Show file tree
Hide file tree
Showing 13 changed files with 186 additions and 346 deletions.
@@ -1,5 +1,8 @@
package org.infinispan.container.entries; package org.infinispan.container.entries;


import java.util.Map;
import java.util.Objects;

import org.infinispan.container.DataContainer; import org.infinispan.container.DataContainer;
import org.infinispan.metadata.Metadata; import org.infinispan.metadata.Metadata;


Expand Down Expand Up @@ -135,4 +138,19 @@ public AbstractInternalCacheEntry clone() {
throw new RuntimeException("Should never happen!", e); throw new RuntimeException("Should never happen!", e);
} }
} }

@Override
public final boolean equals(Object o) {
if (this == o) return true;
if (o == null || !(o instanceof Map.Entry)) return false;

Map.Entry that = (Map.Entry) o;

return Objects.equals(getKey(), that.getKey()) && Objects.equals(getValue(), that.getValue());
}

@Override
public final int hashCode() {
return 31 * Objects.hashCode(getKey()) + Objects.hashCode(getValue());
}
} }
Expand Up @@ -114,26 +114,6 @@ public void setMetadata(Metadata metadata) {
"Metadata cannot be set on immortal entries. They need to be recreated via the entry factory."); "Metadata cannot be set on immortal entries. They need to be recreated via the entry factory.");
} }


@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

ImmortalCacheEntry that = (ImmortalCacheEntry) o;

if (key != null ? !key.equals(that.key) : that.key != null) return false;
if (value != null ? !value.equals(that.value) : that.value != null) return false;

return true;
}

@Override
public int hashCode() {
int result = key != null ? key.hashCode() : 0;
result = 31 * result + (value != null ? value.hashCode() : 0);
return result;
}

@Override @Override
public ImmortalCacheEntry clone() { public ImmortalCacheEntry clone() {
return (ImmortalCacheEntry) super.clone(); return (ImmortalCacheEntry) super.clone();
Expand All @@ -160,7 +140,7 @@ public Integer getId() {


@Override @Override
public Set<Class<? extends ImmortalCacheEntry>> getTypeClasses() { public Set<Class<? extends ImmortalCacheEntry>> getTypeClasses() {
return Util.<Class<? extends ImmortalCacheEntry>>asSet(ImmortalCacheEntry.class); return Util.asSet(ImmortalCacheEntry.class);
} }
} }


Expand Down
Expand Up @@ -123,29 +123,6 @@ public void setMetadata(Metadata metadata) {
"Metadata cannot be set on mortal entries. They need to be recreated via the entry factory."); "Metadata cannot be set on mortal entries. They need to be recreated via the entry factory.");
} }


@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

MortalCacheEntry that = (MortalCacheEntry) o;

if (key != null ? !key.equals(that.key) : that.key != null) return false;
if (value != null ? !value.equals(that.value) : that.value != null)
return false;
if (created != that.created) return false;
return lifespan == that.lifespan;
}

@Override
public int hashCode() {
int result = key != null ? key.hashCode() : 0;
result = 31 * result + (value != null ? value.hashCode() : 0);
result = 31 * result + (int) (created ^ (created >>> 32));
result = 31 * result + (int) (lifespan ^ (lifespan >>> 32));
return result;
}

@Override @Override
public MortalCacheEntry clone() { public MortalCacheEntry clone() {
return (MortalCacheEntry) super.clone(); return (MortalCacheEntry) super.clone();
Expand Down Expand Up @@ -176,7 +153,7 @@ public Integer getId() {


@Override @Override
public Set<Class<? extends MortalCacheEntry>> getTypeClasses() { public Set<Class<? extends MortalCacheEntry>> getTypeClasses() {
return Util.<Class<? extends MortalCacheEntry>>asSet(MortalCacheEntry.class); return Util.asSet(MortalCacheEntry.class);
} }
} }


Expand Down
Expand Up @@ -126,31 +126,6 @@ public void setMetadata(Metadata metadata) {
"Metadata cannot be set on mortal entries. They need to be recreated via the entry factory."); "Metadata cannot be set on mortal entries. They need to be recreated via the entry factory.");
} }


@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

TransientCacheEntry that = (TransientCacheEntry) o;

if (key != null ? !key.equals(that.key) : that.key != null) return false;
if (value != null ? !value.equals(that.value) : that.value != null)
return false;
if (lastUsed != that.lastUsed) return false;
if (maxIdle != that.maxIdle) return false;

return true;
}

@Override
public int hashCode() {
int result = key != null ? key.hashCode() : 0;
result = 31 * result + (value != null ? value.hashCode() : 0);
result = 31 * result + (int) (lastUsed ^ (lastUsed >>> 32));
result = 31 * result + (int) (maxIdle ^ (maxIdle >>> 32));
return result;
}

@Override @Override
public TransientCacheEntry clone() { public TransientCacheEntry clone() {
return (TransientCacheEntry) super.clone(); return (TransientCacheEntry) super.clone();
Expand Down Expand Up @@ -181,7 +156,7 @@ public Integer getId() {


@Override @Override
public Set<Class<? extends TransientCacheEntry>> getTypeClasses() { public Set<Class<? extends TransientCacheEntry>> getTypeClasses() {
return Util.<Class<? extends TransientCacheEntry>>asSet(TransientCacheEntry.class); return Util.asSet(TransientCacheEntry.class);
} }
} }


Expand Down
Expand Up @@ -143,27 +143,6 @@ public void setMetadata(Metadata metadata) {
"Metadata cannot be set on mortal entries. They need to be recreated via the entry factory."); "Metadata cannot be set on mortal entries. They need to be recreated via the entry factory.");
} }


@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

TransientMortalCacheEntry that = (TransientMortalCacheEntry) o;

if (created != that.created) return false;
if (lifespan != that.lifespan) return false;

return true;
}

@Override
public int hashCode() {
int result = super.hashCode();
result = 31 * result + (int) (created ^ (created >>> 32));
result = 31 * result + (int) (lifespan ^ (lifespan >>> 32));
return result;
}

@Override @Override
public TransientMortalCacheEntry clone() { public TransientMortalCacheEntry clone() {
return (TransientMortalCacheEntry) super.clone(); return (TransientMortalCacheEntry) super.clone();
Expand Down Expand Up @@ -206,7 +185,7 @@ public Integer getId() {


@Override @Override
public Set<Class<? extends TransientMortalCacheEntry>> getTypeClasses() { public Set<Class<? extends TransientMortalCacheEntry>> getTypeClasses() {
return Util.<Class<? extends TransientMortalCacheEntry>>asSet(TransientMortalCacheEntry.class); return Util.asSet(TransientMortalCacheEntry.class);
} }
} }
} }
Expand Up @@ -119,27 +119,6 @@ public void setMetadata(Metadata metadata) {
this.metadata = metadata; this.metadata = metadata;
} }


@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

MetadataMortalCacheEntry that = (MetadataMortalCacheEntry) o;

if (created != that.created) return false;
if (value != null ? !value.equals(that.value) : that.value != null) return false;
return metadata != null ? metadata.equals(that.metadata) : that.metadata == null;

}

@Override
public int hashCode() {
int result = value != null ? value.hashCode() : 0;
result = 31 * result + (metadata != null ? metadata.hashCode() : 0);
result = 31 * result + (int) (created ^ (created >>> 32));
return result;
}

public static class Externalizer extends AbstractExternalizer<MetadataMortalCacheEntry> { public static class Externalizer extends AbstractExternalizer<MetadataMortalCacheEntry> {
@Override @Override
public void writeObject(ObjectOutput output, MetadataMortalCacheEntry ice) throws IOException { public void writeObject(ObjectOutput output, MetadataMortalCacheEntry ice) throws IOException {
Expand All @@ -165,7 +144,7 @@ public Integer getId() {


@Override @Override
public Set<Class<? extends MetadataMortalCacheEntry>> getTypeClasses() { public Set<Class<? extends MetadataMortalCacheEntry>> getTypeClasses() {
return Util.<Class<? extends MetadataMortalCacheEntry>>asSet(MetadataMortalCacheEntry.class); return Util.asSet(MetadataMortalCacheEntry.class);
} }
} }
} }
Expand Up @@ -121,27 +121,6 @@ public void setMetadata(Metadata metadata) {
this.metadata = metadata; this.metadata = metadata;
} }


@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

MetadataTransientCacheEntry that = (MetadataTransientCacheEntry) o;

if (lastUsed != that.lastUsed) return false;
if (value != null ? !value.equals(that.value) : that.value != null) return false;
return metadata != null ? metadata.equals(that.metadata) : that.metadata == null;

}

@Override
public int hashCode() {
int result = value != null ? value.hashCode() : 0;
result = 31 * result + (metadata != null ? metadata.hashCode() : 0);
result = 31 * result + (int) (lastUsed ^ (lastUsed >>> 32));
return result;
}

public static class Externalizer extends AbstractExternalizer<MetadataTransientCacheEntry> { public static class Externalizer extends AbstractExternalizer<MetadataTransientCacheEntry> {
@Override @Override
public void writeObject(ObjectOutput output, MetadataTransientCacheEntry ice) throws IOException { public void writeObject(ObjectOutput output, MetadataTransientCacheEntry ice) throws IOException {
Expand All @@ -167,7 +146,7 @@ public Integer getId() {


@Override @Override
public Set<Class<? extends MetadataTransientCacheEntry>> getTypeClasses() { public Set<Class<? extends MetadataTransientCacheEntry>> getTypeClasses() {
return Util.<Class<? extends MetadataTransientCacheEntry>>asSet(MetadataTransientCacheEntry.class); return Util.asSet(MetadataTransientCacheEntry.class);
} }
} }
} }
Expand Up @@ -134,29 +134,6 @@ public void setMetadata(Metadata metadata) {
this.metadata = metadata; this.metadata = metadata;
} }


@Override
public boolean equals(Object o) {
if (this == o) return true;
if (o == null || getClass() != o.getClass()) return false;

MetadataTransientMortalCacheEntry that = (MetadataTransientMortalCacheEntry) o;

if (created != that.created) return false;
if (lastUsed != that.lastUsed) return false;
if (value != null ? !value.equals(that.value) : that.value != null) return false;
return metadata != null ? metadata.equals(that.metadata) : that.metadata == null;

}

@Override
public int hashCode() {
int result = value != null ? value.hashCode() : 0;
result = 31 * result + (metadata != null ? metadata.hashCode() : 0);
result = 31 * result + (int) (created ^ (created >>> 32));
result = 31 * result + (int) (lastUsed ^ (lastUsed >>> 32));
return result;
}

public static class Externalizer extends AbstractExternalizer<MetadataTransientMortalCacheEntry> { public static class Externalizer extends AbstractExternalizer<MetadataTransientMortalCacheEntry> {
@Override @Override
public void writeObject(ObjectOutput output, MetadataTransientMortalCacheEntry ice) throws IOException { public void writeObject(ObjectOutput output, MetadataTransientMortalCacheEntry ice) throws IOException {
Expand Down Expand Up @@ -184,7 +161,7 @@ public Integer getId() {


@Override @Override
public Set<Class<? extends MetadataTransientMortalCacheEntry>> getTypeClasses() { public Set<Class<? extends MetadataTransientMortalCacheEntry>> getTypeClasses() {
return Util.<Class<? extends MetadataTransientMortalCacheEntry>>asSet(MetadataTransientMortalCacheEntry.class); return Util.asSet(MetadataTransientMortalCacheEntry.class);
} }
} }
} }

0 comments on commit ab69a96

Please sign in to comment.