2011-12-25 7 views
0

私は基本的に次のようにjsonに追加されたプロパティを読み取るコードを持っています。例えば 'name'や 'value' 。他のJSON文字列は「キャッチ」しなければならない他のプロパティを含めることができ@JsonAny(S | G} etterの1.7.4から1.9.3への変更?

@JsonAnySetter 
public void addAdditionalProperty(String key, Object value) { 
    if (additionalProperties == null) 
     additionalProperties = new HashMap<String, Object>(); 
    additionalProperties.put(key,value); 
} 

@SuppressWarnings("unused") 
public void setAdditionalProperties(Map<String, Object> additionalProperties) { 
    this.additionalProperties = additionalProperties; 
} 

@JsonAnyGetter 
public Map<String,Object> getAdditionalProperties() { 
    return this.additionalProperties; 
} 

@JsonIgnore 
public String getName() { 
    return (String) getProperty("name"); 
} 

@JsonIgnore 
public String getValue() { 
    return (String) getProperty("value"); 
} 

このコードは、ジャクソン1.7でうまく動作 - 。JSON {"operation":"write-attribute","address":[{"subsystem":"web"},{"connector":"http"}],"name":"socket-binding","value":"jndi"}に従っ 方法が一般的なものとして、私はちょうど名前と値をハードコーディングに頼るだことができます。 4であるが、1.9.3で失敗し、additionalPropertiesが設定されていない場合 これが意図した変更であるのか、それとも回帰であるのか分からない。

それが意図された変更の場合 - 誰かが私のコードを再び動作させるための "修正"方法を知っていますか?

全コードis here、テストis here(最初のテスト、OperationSerDeserTest)

+0

エラーは何ですか? – fge

+0

説明したように、additionalProperties全体は設定されていませんが、1.7.4に含まれています。 –

+0

ああ、ランタイムエラーがあることを理解しました – fge

答えて

1

は、私には潜在的なバグのような音 - を把握するための最も簡単な方法は、ユーザーリストに質問を送ったり、Jiraのを提出するのいずれかです。私は後者をすることができます、私は何が起こるかを見ることができます参照してください

+1

通常のゲッター間に何らかの(内部の)競合があるようですが、ゲッターの問題は[https://jira.codehaus.org/browse/JACKSON-744]です]、これまでのバグのように見えます。ユニットテストではこれを理解できなかったことは間違いありません。 – StaxMan

関連する問題