facebook/swift — pull request #191 by hand515 (2014-04-30 15:15:40+00:00)
Title: bug for thriftCodec cache , which 'MAP/SET/LIST' has difference valueTyp...

bug for thriftCodec cache , which 'MAP/SET/LIST' has difference valueType or keyType.

In my case :
service Service1{
map query1();
}

service Service2{
map query2();
}

while I start the server ,
NiftyProcessor processor = new ThriftServiceProcessor(new ThriftCodecManager(),
Arrays.asList(new ThriftEventHandler[] { }),
context.getBean("service1"), context.getBean("service2"));

and I call the method query2(), it will cause an exception :
java.lang.IllegalArgumentException: argument type mismatch
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:1.7.0_51]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) ~[na:1.7.0_51]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.7.0_51]
at java.lang.reflect.Method.invoke(Method.java:606) ~[na:1.7.0_51]
at com.facebook.swift.codec.internal.coercion.CoercionThriftCodec.write(CoercionThriftCodec.java:62) ~[swift-codec-0.12.0.jar:0.12.0]
at com.facebook.swift.codec.internal.TProtocolWriter.writeMap(TProtocolWriter.java:299) ~[swift-codec-0.12.0.jar:0.12.0]