Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
apache
DolphinScheduler
提交
0744d407
DolphinScheduler
项目概览
apache
/
DolphinScheduler
上一次同步 1 年多
通知
704
Star
9572
Fork
3514
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
DolphinScheduler
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
0744d407
编写于
6月 17, 2020
作者:
Y
Yichao Yang
提交者:
GitHub
6月 17, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[Hotfix-2922][common] Fix Jackson UDde error (#2922) (#2926)
Co-authored-by:
N
dailidong
<
dailidong66@gmail.com
>
上级
8031c162
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
49 addition
and
9 deletion
+49
-9
dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java
...a/org/apache/dolphinscheduler/common/utils/JSONUtils.java
+26
-7
dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/JSONUtilsTest.java
...g/apache/dolphinscheduler/common/utils/JSONUtilsTest.java
+23
-2
未找到文件。
dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/JSONUtils.java
浏览文件 @
0744d407
...
...
@@ -16,19 +16,34 @@
*/
package
org.apache.dolphinscheduler.common.utils
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.Collections
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.TimeZone
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
com.fasterxml.jackson.core.JsonGenerator
;
import
com.fasterxml.jackson.core.JsonParser
;
import
com.fasterxml.jackson.core.type.TypeReference
;
import
com.fasterxml.jackson.databind.*
;
import
com.fasterxml.jackson.databind.DeserializationContext
;
import
com.fasterxml.jackson.databind.DeserializationFeature
;
import
com.fasterxml.jackson.databind.JsonDeserializer
;
import
com.fasterxml.jackson.databind.JsonNode
;
import
com.fasterxml.jackson.databind.JsonSerializer
;
import
com.fasterxml.jackson.databind.ObjectMapper
;
import
com.fasterxml.jackson.databind.ObjectWriter
;
import
com.fasterxml.jackson.databind.SerializationFeature
;
import
com.fasterxml.jackson.databind.SerializerProvider
;
import
com.fasterxml.jackson.databind.node.ArrayNode
;
import
com.fasterxml.jackson.databind.node.ObjectNode
;
import
com.fasterxml.jackson.databind.node.TextNode
;
import
com.fasterxml.jackson.databind.type.CollectionType
;
import
org.apache.commons.lang.StringUtils
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
java.io.IOException
;
import
java.util.*
;
/**
* json utils
...
...
@@ -275,7 +290,11 @@ public class JSONUtils {
@Override
public
String
deserialize
(
JsonParser
p
,
DeserializationContext
ctxt
)
throws
IOException
{
JsonNode
node
=
p
.
getCodec
().
readTree
(
p
);
return
node
.
toString
();
if
(
node
instanceof
TextNode
)
{
return
node
.
asText
();
}
else
{
return
node
.
toString
();
}
}
}
...
...
dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/JSONUtilsTest.java
浏览文件 @
0744d407
...
...
@@ -21,14 +21,20 @@ import com.fasterxml.jackson.databind.SerializationFeature;
import
com.fasterxml.jackson.databind.node.ArrayNode
;
import
com.fasterxml.jackson.databind.node.JsonNodeFactory
;
import
com.fasterxml.jackson.databind.node.ObjectNode
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.Map
;
import
org.apache.dolphinscheduler.common.enums.DataType
;
import
org.apache.dolphinscheduler.common.enums.Direct
;
import
org.apache.dolphinscheduler.common.model.TaskNode
;
import
org.apache.dolphinscheduler.common.process.Property
;
import
org.junit.Assert
;
import
org.junit.Test
;
import
java.util.*
;
public
class
JSONUtilsTest
{
@Test
...
...
@@ -216,4 +222,19 @@ public class JSONUtilsTest {
Assert
.
assertEquals
(
"yellow"
,
node
.
path
(
0
).
path
(
"color"
).
asText
());
}
@Test
public
void
jsonDataDeserializerTest
()
{
String
a
=
"{\"conditionResult\":\"{\\\"successNode\\\":[\\\"\\\"],\\\"failedNode\\\":[\\\"\\\"]}\","
+
"\"conditionsTask\":false,\"depList\":[],\"dependence\":\"{}\",\"forbidden\":false,"
+
"\"id\":\"tasks-86823\",\"maxRetryTimes\":1,\"name\":\"shell test\","
+
"\"params\":\"{\\\"resourceList\\\":[],\\\"localParams\\\":[],\\\"rawScript\\\":\\\"echo "
+
"'yyc'\\\"}\",\"preTasks\":\"[]\",\"retryInterval\":1,\"runFlag\":\"NORMAL\","
+
"\"taskInstancePriority\":\"HIGHEST\",\"taskTimeoutParameter\":{\"enable\":false,\"interval\":0},"
+
"\"timeout\":\"{}\",\"type\":\"SHELL\",\"workerGroup\":\"default\"}"
;
TaskNode
taskNode
=
JSONUtils
.
parseObject
(
a
,
TaskNode
.
class
);
Assert
.
assertTrue
(
true
);
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录