Skip to content

Commit

Permalink
Merge pull request #11231 from martijnvg/fix_ContextAndHeaderHolder_a…
Browse files Browse the repository at this point in the history
…nd_HasHeaders_generics

Removed generic types from ContextAndHeaderHolder and  HasHeaders#putHeader()
  • Loading branch information
martijnvg committed May 19, 2015
2 parents bd4c741 + e6a25d4 commit 02fa819
Show file tree
Hide file tree
Showing 7 changed files with 18 additions and 13 deletions.
Expand Up @@ -31,7 +31,7 @@
/**
*
*/
public class ContextAndHeaderHolder<T> implements HasContextAndHeaders {
public class ContextAndHeaderHolder implements HasContextAndHeaders {

private ObjectObjectOpenHashMap<Object, Object> context;
protected Map<String, Object> headers;
Expand Down Expand Up @@ -108,14 +108,13 @@ public synchronized void copyContextFrom(HasContext other) {
}
}

@SuppressWarnings("unchecked")
@Override
public final T putHeader(String key, Object value) {
public HasHeaders putHeader(String key, Object value) {
if (headers == null) {
headers = new HashMap<>();
}
headers.put(key, value);
return (T) this;
return this;
}

@SuppressWarnings("unchecked")
Expand Down
2 changes: 1 addition & 1 deletion src/main/java/org/elasticsearch/common/HasHeaders.java
Expand Up @@ -26,7 +26,7 @@
*/
public interface HasHeaders {

<V> V putHeader(String key, V value);
HasHeaders putHeader(String key, Object value);

<V> V getHeader(String key);

Expand Down
Expand Up @@ -788,9 +788,9 @@ public void copyContextFrom(HasContext other) {
}

@Override
public <V> V putHeader(String key, V value) {
assert false : "percolatocontext does not support contexts & headers";
return value;
public HasHeaders putHeader(String key, Object value) {
assert false : "percolatcontext does not support contexts & headers";
return this;
}

@Override
Expand Down
Expand Up @@ -766,7 +766,7 @@ public void copyContextFrom(HasContext other) {
}

@Override
public <V> V putHeader(String key, V value) {
public HasHeaders putHeader(String key, Object value) {
return request.putHeader(key, value);
}

Expand Down
Expand Up @@ -658,7 +658,7 @@ public void copyContextFrom(HasContext other) {
}

@Override
public <V> V putHeader(String key, V value) {
public HasHeaders putHeader(String key, Object value) {
return in.putHeader(key, value);
}

Expand Down
Expand Up @@ -20,6 +20,7 @@
package org.elasticsearch.transport;

import org.elasticsearch.common.ContextAndHeaderHolder;
import org.elasticsearch.common.HasHeaders;
import org.elasticsearch.common.io.stream.StreamInput;
import org.elasticsearch.common.io.stream.StreamOutput;
import org.elasticsearch.common.io.stream.Streamable;
Expand All @@ -32,7 +33,7 @@
* The transport message is also a {@link ContextAndHeaderHolder context holder} that holds <b>transient</b> context, that is,
* the context is not serialized with message.
*/
public abstract class TransportMessage<TM extends TransportMessage<TM>> extends ContextAndHeaderHolder<TM> implements Streamable {
public abstract class TransportMessage<TM extends TransportMessage<TM>> extends ContextAndHeaderHolder implements Streamable {

private TransportAddress remoteAddress;

Expand All @@ -57,6 +58,11 @@ public TransportAddress remoteAddress() {
return remoteAddress;
}

// Needed for plugins already compiled against 1.5.x versions:
public TransportMessage putHeader(String key, Object value) {
return (TransportMessage) super.putHeader(key, value);
}

@Override
public void readFrom(StreamInput in) throws IOException {
headers = in.readBoolean() ? in.readMap() : null;
Expand Down
4 changes: 2 additions & 2 deletions src/test/java/org/elasticsearch/test/TestSearchContext.java
Expand Up @@ -704,8 +704,8 @@ public void copyContextFrom(HasContext other) {
}

@Override
public <V> V putHeader(String key, V value) {
return value;
public HasHeaders putHeader(String key, Object value) {
return this;
}

@Override
Expand Down

0 comments on commit 02fa819

Please sign in to comment.