-
Notifications
You must be signed in to change notification settings - Fork 6.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
com.alibaba.fastjson.JSONException: TODO #1261
Comments
能否提供你用到的json和pojo结构, |
还有能否提供fastjson的版本? |
1.2.29版本,数据结构: {"data":2660885,"count":0,"hasError":false,"errorCode":null,"errorMessage":null,"errorTrace":null,"status":0,"message":null} 不定时不定期出现,使用的下面这段代码进行解析 JSON.parseObject(entityStream, this.fastJsonConfig.getCharset(), type, this.fastJsonConfig.getFeatures()) 返回的结果是这种数据结构 private long status;
private String message;
private T data;
private Integer count;
private boolean hasError;
private String errorCode;
private String errorMessage;
private String errorTrace; 感谢! |
我也是1.2.29,也是出这个异常。SpringBoot + Feign+JDK 1.7.0_55。
经过排查,发现是服务器jenkins打包机器使用的JDK是 java version "1.8.0_144" 但是难以复现这个问题,应用服务器上面,时而有错,时而正常。 但建议 还是 尽量打包机器和应用服务器 使用相同版本。 完整异常
|
我是1.2.22版本,也有这个异常。诡异的是服务器上有这个异常,在本地测试就正常,JDK都是1.8,看不出别的问题。
|
好奇怪,也报了同样的错: com.alibaba.fastjson.JSONException: TODO 同样的spring boot的fat jar,部署在两台机器上,只有一台机器报上面的错。 {
"code": 0,
"data": true,
"message": "OK",
"status": 0
} 对应的Java对象: import lombok.Data;
import java.util.Date;
@Data
public class DataResult<T> {
private int status;
private String message;
private T data;
private Date time;
} 调用的API: com.alibaba.fastjson.JSON.toJSONString() 报错的信息: com.alibaba.fastjson.JSONException: TODO
at com.alibaba.fastjson.util.TypeUtils.getRawClass(TypeUtils.java:2019) ~[fastjson-1.2.31.jar!/:?]
at com.alibaba.fastjson.util.TypeUtils.createCollection(TypeUtils.java:1981) ~[fastjson-1.2.31.jar!/:?]
at com.alibaba.fastjson.serializer.CollectionCodec.deserialze(CollectionCodec.java:117) ~[fastjson-1.2.31.jar!/:?]
at com.alibaba.fastjson.parser.deserializer.DefaultFieldDeserializer.parseField(DefaultFieldDeserializer.java:71) ~[fastjson-1.2.31.jar!/:?]
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.parseField(JavaBeanDeserializer.java:828) ~[fastjson-1.2.31.jar!/:?]
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:630) ~[fastjson-1.2.31.jar!/:?]
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:212) ~[fastjson-1.2.31.jar!/:?]
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:208) ~[fastjson-1.2.31.jar!/:?]
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:642) ~[fastjson-1.2.31.jar!/:?]
at com.alibaba.fastjson.JSON.parseObject(JSON.java:350) ~[fastjson-1.2.31.jar!/:?]
at com.alibaba.fastjson.JSON.parseObject(JSON.java:254) ~[fastjson-1.2.31.jar!/:?]
at com.alibaba.fastjson.JSON.parseObject(JSON.java:467) ~[fastjson-1.2.31.jar!/:?] |
@helloworldtang 你能在某一台机器上复现吗?这两台机器的JDK版本是不是一样的?我一直想复现来着。还有你的Model 类? |
@slankka |
温少建议升级到1.2.49,出现类似问题的同学可以试试 |
@su1216 这种是偶发的,怎么证明已经解决了呢? 对比了下1.2.31和1.2.49中com.alibaba.fastjson.util.TypeUtils.getRawClass, 在前两行代码有变化: if (type instanceof Class<?>) {
return (Class<?>) type; v1.2.31中: public static Class<?> getRawClass(Type type) {
if (type instanceof Class<?>) {
return (Class<?>) type;
} else if (type instanceof ParameterizedType) {
return getRawClass(((ParameterizedType) type).getRawType());
} else {
throw new JSONException("TODO");
}
} v1.2.49中: public static Class<?> getRawClass(Type type) {
if (type instanceof Class) {
return (Class)type;
} else if (type instanceof ParameterizedType) {
return getRawClass(((ParameterizedType)type).getRawType());
} else {
throw new JSONException("TODO");
}
} |
at com.alibaba.fastjson.util.TypeUtils.getRawClass(TypeUtils.java:1735) ~[fastjson-1.2.22.jar!/:?] 温少说在1.2.49中已解决 alibaba/fastjson#1261
@helloworldtang 抱歉,之前看成另一个问题了。这个问题不了解。 |
@helloworldtang 我怎么没有看出有什么不同的地方?1.2.31和1.2.49中com.alibaba.fastjson.util.TypeUtils.getRawClass 前两行 没有变化啊 |
@slankka |
|
我是1.2.54版本,也有这个异常。服务器上有这个异常,在本地mac系统测试就正常,JDK都是1.8 |
1.2.29版本,我也遇到了这个问题,所以各位大神有解决方案了么,是升级到1.2.49可以了么? |
更新到最新的1.2.58版本,同样报这个错误,错误日志信息和上面都一样,都是在 TypeUtils.getRawClass这个里。各位大佬有解决方法么?这个报错很随机,有点任性啊 |
这个问题我也遇到了,jdk版本测试与本地都是1.8,但是我最终使用TypeReference解决了 结论: |
fastjson 1.2.28 public class Result implements Serializable { 已使用jackjson 替换反斜线代码。 |
为啥还在使用这么老的版本? |
版本2.0.1 也遇到这个问题了 |
2.0.2 也有这个问题 |
2.0.1有这个问题,2.0.12没有这个问题 |
您好,我已经收到您的来信,会尽快处理。
|
2.0.26也有这样的问题,服务器上报错,本地是好的 |
您好,我已经收到您的来信,会尽快处理。
|
com.alibaba.fastjson.JSONException: TODO
at com.alibaba.fastjson.util.TypeUtils.getRawClass(TypeUtils.java:2019)
at com.alibaba.fastjson.util.TypeUtils.createCollection(TypeUtils.java:1981)
at com.alibaba.fastjson.serializer.CollectionCodec.deserialze(CollectionCodec.java:117)
at com.alibaba.fastjson.parser.deserializer.DefaultFieldDeserializer.parseField(DefaultFieldDeserializer.java:71)
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.parseField(JavaBeanDeserializer.java:828)
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:630)
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:212)
at com.alibaba.fastjson.parser.deserializer.JavaBeanDeserializer.deserialze(JavaBeanDeserializer.java:208)
at com.alibaba.fastjson.parser.DefaultJSONParser.parseObject(DefaultJSONParser.java:642)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:350)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:254)
at com.alibaba.fastjson.JSON.parseObject(JSON.java:467)
at com.djdg.product.api.sdk.service.StockService.operateStockRecord(StockService.java:59)
at com.djdg.product.api.sdk.Service.operateStockRecord(Service.java:391)
at com.djdg.pos.client.api.help.ProductHelper.generateWarehouseRecord(ProductHelper.java:78)
at com.djdg.pos.client.api.help.OrderHelper.generateWarehouseRecord(OrderHelper.java:102)
at com.djdg.pos.client.api.service.order.product.StoreProductOrderServiceImpl.orderPayedHandle(StoreProductOrderServiceImpl.java:546)
at com.djdg.pos.client.api.service.order.product.StoreProductOrderServiceImpl.lambda$updateOrder$1(StoreProductOrderServiceImpl.java:298)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining(ArrayList.java:1374)
at java.util.stream.ReferencePipeline$Head.forEachOrdered(ReferencePipeline.java:590)
at com.djdg.pos.client.api.service.order.product.StoreProductOrderServiceImpl.updateOrder(StoreProductOrderServiceImpl.java:289)
at com.djdg.pos.client.api.rest.v1.CheckoutApi.updateStoreOrder(CheckoutApi.java:82)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.jboss.resteasy.core.MethodInjectorImpl.invoke(MethodInjectorImpl.java:137)
at org.jboss.resteasy.core.ResourceMethodInvoker.invokeOnTarget(ResourceMethodInvoker.java:296)
at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:250)
at org.jboss.resteasy.core.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:237)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:356)
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:179)
at org.jboss.resteasy.plugins.server.netty.RequestDispatcher.service(RequestDispatcher.java:83)
at org.jboss.resteasy.plugins.server.netty.RequestHandler.messageReceived(RequestHandler.java:56)
at org.jboss.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:70)
at org.jboss.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:564)
at org.jboss.netty.channel.DefaultChannelPipeline$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:791)
at org.jboss.netty.handler.execution.ChannelUpstreamEventRunnable.doRun(ChannelUpstreamEventRunnable.java:43)
at org.jboss.netty.handler.execution.ChannelEventRunnable.run(ChannelEventRunnable.java:67)
at org.jboss.netty.handler.execution.OrderedMemoryAwareThreadPoolExecutor$ChildExecutor.run(OrderedMemoryAwareThreadPoolExecutor.java:314)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
The text was updated successfully, but these errors were encountered: