Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
doujutun3207
flink
提交
65d85f10
F
flink
项目概览
doujutun3207
/
flink
与 Fork 源项目一致
从无法访问的项目Fork
通知
24
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
flink
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
65d85f10
编写于
11月 25, 2014
作者:
U
Ufuk Celebi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[FLINK-1221] Use StackTraceElement methods instead of String parsing
This closes #231.
上级
c03237a8
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
23 addition
and
41 deletion
+23
-41
flink-java/src/main/java/org/apache/flink/api/java/Utils.java
...k-java/src/main/java/org/apache/flink/api/java/Utils.java
+7
-8
flink-java/src/test/java/org/apache/flink/api/java/operators/NamesTest.java
...t/java/org/apache/flink/api/java/operators/NamesTest.java
+16
-33
未找到文件。
flink-java/src/main/java/org/apache/flink/api/java/Utils.java
浏览文件 @
65d85f10
...
...
@@ -18,9 +18,6 @@
package
org.apache.flink.api.java
;
import
org.apache.commons.lang3.StringUtils
;
public
class
Utils
{
public
static
String
getCallLocationName
()
{
...
...
@@ -28,12 +25,14 @@ public class Utils {
}
public
static
String
getCallLocationName
(
int
depth
)
{
StackTraceElement
[]
st
=
Thread
.
currentThread
().
getStackTrace
();
if
(
st
.
length
<
depth
)
{
// we should not throw an out of bounds exception for this.
StackTraceElement
[]
stackTrace
=
Thread
.
currentThread
().
getStackTrace
();
if
(
stackTrace
.
length
<
depth
)
{
return
"<unknown>"
;
}
String
callLoc
=
st
[
depth
].
toString
();
int
idx
=
StringUtils
.
lastOrdinalIndexOf
(
callLoc
,
"."
,
2
);
// second last occurrence of .
return
callLoc
.
substring
(
idx
+
1
,
callLoc
.
length
());
StackTraceElement
elem
=
stackTrace
[
depth
];
return
String
.
format
(
"%s(%s:%d)"
,
elem
.
getMethodName
(),
elem
.
getFileName
(),
elem
.
getLineNumber
());
}
}
flink-java/src/test/java/org/apache/flink/api/java/operators/NamesTest.java
浏览文件 @
65d85f10
...
...
@@ -15,6 +15,7 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
org.apache.flink.api.java.operators
;
import
java.io.Serializable
;
...
...
@@ -37,19 +38,18 @@ import org.apache.flink.util.Visitor;
import
org.junit.Assert
;
import
org.junit.Test
;
/**
* Test proper automated assignment of the transformation's name, if not set by the user.
*/
public
class
NamesTest
implements
Serializable
{
@Test
public
void
testDefaultName
()
{
ExecutionEnvironment
env
=
ExecutionEnvironment
.
getExecutionEnvironment
();
DataSet
<
String
>
strs
=
env
.
fromCollection
(
Arrays
.
asList
(
new
String
[]
{
"a"
,
"b"
}));
// WARNING: The test will fail if this line is being moved down in the file (the line-number is hard-coded)
strs
.
filter
(
new
FilterFunction
<
String
>()
{
private
static
final
long
serialVersionUID
=
1L
;
...
...
@@ -62,11 +62,11 @@ public class NamesTest implements Serializable {
JavaPlan
plan
=
env
.
createProgramPlan
();
testForName
(
"Filter at testDefaultName(NamesTest.java:54)"
,
plan
);
}
@Test
public
void
testGivenName
()
{
ExecutionEnvironment
env
=
ExecutionEnvironment
.
getExecutionEnvironment
();
DataSet
<
String
>
strs
=
env
.
fromCollection
(
Arrays
.
asList
(
new
String
[]
{
"a"
,
"b"
}));
strs
.
filter
(
new
FilterFunction
<
String
>()
{
private
static
final
long
serialVersionUID
=
1L
;
...
...
@@ -78,25 +78,25 @@ public class NamesTest implements Serializable {
JavaPlan
plan
=
env
.
createProgramPlan
();
testForName
(
"GivenName"
,
plan
);
}
@Test
public
void
testJoinWith
()
{
ExecutionEnvironment
env
=
ExecutionEnvironment
.
getExecutionEnvironment
();
List
<
Tuple1
<
String
>>
strLi
=
new
ArrayList
<
Tuple1
<
String
>>();
strLi
.
add
(
new
Tuple1
<
String
>(
"a"
));
strLi
.
add
(
new
Tuple1
<
String
>(
"a"
));
strLi
.
add
(
new
Tuple1
<
String
>(
"b"
));
DataSet
<
Tuple1
<
String
>>
strs
=
env
.
fromCollection
(
strLi
);
DataSet
<
Tuple1
<
String
>>
strs1
=
env
.
fromCollection
(
strLi
);
strs
.
join
(
strs1
).
where
(
0
).
equalTo
(
0
).
with
(
new
FlatJoinFunction
<
Tuple1
<
String
>,
Tuple1
<
String
>,
String
>()
{
@Override
public
void
join
(
Tuple1
<
String
>
first
,
Tuple1
<
String
>
second
,
Collector
<
String
>
out
)
throws
Exception
{
Collector
<
String
>
out
)
throws
Exception
{
//
}
})
.
output
(
new
DiscardingOuputFormat
<
String
>());
.
output
(
new
DiscardingOuputFormat
<
String
>());
JavaPlan
plan
=
env
.
createProgramPlan
();
plan
.
accept
(
new
Visitor
<
Operator
<?>>()
{
@Override
...
...
@@ -110,40 +110,23 @@ public class NamesTest implements Serializable {
public
void
postVisit
(
Operator
<?>
visitable
)
{}
});
}
private
static
void
testForName
(
final
String
expected
,
JavaPlan
plan
)
{
plan
.
accept
(
new
Visitor
<
Operator
<?>>()
{
@Override
public
boolean
preVisit
(
Operator
<?>
visitable
)
{
if
(
visitable
instanceof
PlanFilterOperator
<?>)
{
if
(
visitable
instanceof
PlanFilterOperator
<?>)
{
// cast is actually not required. Its just a check for the right element
PlanFilterOperator
<?>
filterOp
=
(
PlanFilterOperator
<?>)
visitable
;
Assert
.
assertEquals
(
expected
,
filterOp
.
getName
());
}
return
true
;
}
@Override
public
void
postVisit
(
Operator
<?>
visitable
)
{
//
}
});
}
/*public static void main(String[] args) throws Exception {
ExecutionEnvironment env = ExecutionEnvironment.getExecutionEnvironment();
DataSource<String> strs = env.fromParallelCollection(null, String.class);
strs.output(new DiscardingOuputFormat<String>());
JavaPlan plan = env.createProgramPlan();
plan.accept(new Visitor<Operator<?>>() {
@Override
public boolean preVisit(Operator<?> visitable) {
System.err.println("vis = "+visitable);
return true;
}
@Override
public void postVisit(Operator<?> visitable) {}
});
} */
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录