java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to java.lang.String
- Dominant language
- Java
- Stars
- 17.4k
- Forks
- 5.7k
- PR merge metrics
- No merged PRs in 30d
Description
2018-05-25 11:48:23.396 [job-0] ERROR JobContainer - Exception when job run
java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to java.lang.String
at com.alibaba.datax.common.util.ListUtil.valueToLowerCase(ListUtil.java:133) ~[datax-common-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.common.util.ListUtil.makeSureNoValueDuplicate(ListUtil.java:43) ~[datax-common-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.writer.odpswriter.OdpsWriter$Job.dealColumn(OdpsWriter.java:206) ~[odpswriter-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.plugin.writer.odpswriter.OdpsWriter$Job.split(OdpsWriter.java:181) ~[odpswriter-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.job.JobContainer.doWriterSplit(JobContainer.java:750) ~[datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.job.JobContainer.split(JobContainer.java:397) ~[datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:117) ~[datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.Engine.start(Engine.java:92) [datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.Engine.entry(Engine.java:171) [datax-core-0.0.1-SNAPSHOT.jar:na]
at com.alibaba.datax.core.Engine.main(Engine.java:204) [datax-core-0.0.1-SNAPSHOT.jar:na]
2018-05-25 11:48:23.399 [job-0] INFO StandAloneJobContainerCommunicator - Total 0 records, 0 bytes | Speed 0B/s, 0 records/s | Error 0 records, 0 bytes | All Task WaitWriterTime 0.000s | All Task WaitReaderTime 0.000s | Percentage 0.00%
2018-05-25 11:48:23.400 [job-0] ERROR Engine -
经DataX智能分析,该任务最可能的错误原因是:
com.alibaba.datax.common.exception.DataXException: Code:[Framework-02], Description:[DataX引擎运行过程出错,具体原因请参看DataX运行结束时的错误诊断信息 .]. - java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to java.lang.String
at com.alibaba.datax.common.util.ListUtil.valueToLowerCase(ListUtil.java:133)
at com.alibaba.datax.common.util.ListUtil.makeSureNoValueDuplicate(ListUtil.java:43)
at com.alibaba.datax.plugin.writer.odpswriter.OdpsWriter$Job.dealColumn(OdpsWriter.java:206)
at com.alibaba.datax.plugin.writer.odpswriter.OdpsWriter$Job.split(OdpsWriter.java:181)
at com.alibaba.datax.core.job.JobContainer.doWriterSplit(JobContainer.java:750)
at com.alibaba.datax.core.job.JobContainer.split(JobContainer.java:397)
at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:117)
at com.alibaba.datax.core.Engine.start(Engine.java:92)
at com.alibaba.datax.core.Engine.entry(Engine.java:171)
at com.alibaba.datax.core.Engine.main(Engine.java:204)
- java.lang.ClassCastException: com.alibaba.fastjson.JSONObject cannot be cast to java.lang.String
at com.alibaba.datax.common.util.ListUtil.valueToLowerCase(ListUtil.java:133)
at com.alibaba.datax.common.util.ListUtil.makeSureNoValueDuplicate(ListUtil.java:43)
at com.alibaba.datax.plugin.writer.odpswriter.OdpsWriter$Job.dealColumn(OdpsWriter.java:206)
at com.alibaba.datax.plugin.writer.odpswriter.OdpsWriter$Job.split(OdpsWriter.java:181)
at com.alibaba.datax.core.job.JobContainer.doWriterSplit(JobContainer.java:750)
at com.alibaba.datax.core.job.JobContainer.split(JobContainer.java:397)
at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:117)
at com.alibaba.datax.core.Engine.start(Engine.java:92)
at com.alibaba.datax.core.Engine.entry(Engine.java:171)
at com.alibaba.datax.core.Engine.main(Engine.java:204)
at com.alibaba.datax.common.exception.DataXException.asDataXException(DataXException.java:40)
at com.alibaba.datax.core.job.JobContainer.start(JobContainer.java:162)
at com.alibaba.datax.core.Engine.start(Engine.java:92)
at com.alibaba.datax.core.Engine.entry(Engine.java:171)
at com.alibaba.datax.core.Engine.main(Engine.java:204)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start with com.alibaba.datax.common.util.ListUtil.valueToLowerCase at line 133 and trace its call from makeSureNoValueDuplicate into OdpsWriter$Job.dealColumn at line 206. Reproduce the ODPS writer job that produces the stack trace, then verify that the job handles the reported JSONObject value without the ClassCastException.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- data-engineering
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 35/100