You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by uc...@apache.org on 2014/11/25 19:58:39 UTC
[2/2] incubator-flink git commit: [FLINK-1221] Use StackTraceElement
methods instead of String parsing
[FLINK-1221] Use StackTraceElement methods instead of String parsing
This closes #231.
Project: http://git-wip-us.apache.org/repos/asf/incubator-flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-flink/commit/65d85f10
Tree: http://git-wip-us.apache.org/repos/asf/incubator-flink/tree/65d85f10
Diff: http://git-wip-us.apache.org/repos/asf/incubator-flink/diff/65d85f10
Branch: refs/heads/master
Commit: 65d85f10c502c1d9793c912a8e2f1969b77c5680
Parents: c03237a
Author: Ufuk Celebi <uc...@apache.org>
Authored: Tue Nov 25 19:41:44 2014 +0100
Committer: Ufuk Celebi <uc...@apache.org>
Committed: Tue Nov 25 19:58:21 2014 +0100
----------------------------------------------------------------------
.../java/org/apache/flink/api/java/Utils.java | 15 +++---
.../flink/api/java/operators/NamesTest.java | 49 +++++++-------------
2 files changed, 23 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-flink/blob/65d85f10/flink-java/src/main/java/org/apache/flink/api/java/Utils.java
----------------------------------------------------------------------
diff --git a/flink-java/src/main/java/org/apache/flink/api/java/Utils.java b/flink-java/src/main/java/org/apache/flink/api/java/Utils.java
index 1d510f9..ba39aec 100644
--- a/flink-java/src/main/java/org/apache/flink/api/java/Utils.java
+++ b/flink-java/src/main/java/org/apache/flink/api/java/Utils.java
@@ -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());
}
}
http://git-wip-us.apache.org/repos/asf/incubator-flink/blob/65d85f10/flink-java/src/test/java/org/apache/flink/api/java/operators/NamesTest.java
----------------------------------------------------------------------
diff --git a/flink-java/src/test/java/org/apache/flink/api/java/operators/NamesTest.java b/flink-java/src/test/java/org/apache/flink/api/java/operators/NamesTest.java
index 6e26e81..c3cac68 100644
--- a/flink-java/src/test/java/org/apache/flink/api/java/operators/NamesTest.java
+++ b/flink-java/src/test/java/org/apache/flink/api/java/operators/NamesTest.java
@@ -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) {}
- });
- } */
}