方法调用和方法执行之间的方法参数值更改

时间:2014-02-05 18:26:18

标签: java java-7 heisenbug

这里发生的事情非常奇怪,也许这里有人可以解决这个问题。我们在代码中有一个电话

request.addQueryParameter(SIGNATURE_NAME, sign(getSignablePart(request), apiKey.getPrivateKey()));

方法sign只生成hamcSHA256哈希。 addQueryParameter定义为:

@Override
public void addQueryParameter(String name, String value) {
  queryParameters.add(new BasicNameValuePair(name, value));
}

问题。方法sign生成value

38e33b53bd67b67a3cf795165af72f00302a2338c53b9859f0622440b7bd5fca

方法addQueryParameter收到value

d8db597ad7c1067948734230431e69983e4580e9d524e79f85680550e8a13bf4

调试时堆栈跟踪中没有其他任何事情发生,我们调用该方法,就在调用sign之前生成的值不是addQueryParameter收到的值。

欢迎提出建议。

0 个答案:

没有答案