You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by fh...@apache.org on 2015/04/07 14:49:20 UTC
[1/3] flink git commit: Fix issue where Windows paths were not
recognized as absolute Added Windows test cases to Path tests
Repository: flink
Updated Branches:
refs/heads/master 5cd9e9d94 -> d33b44549
Fix issue where Windows paths were not recognized as absolute
Added Windows test cases to Path tests
This closes #491
Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/2f683af7
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/2f683af7
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/2f683af7
Branch: refs/heads/master
Commit: 2f683af747606027b8aebddca82147baa6a416c6
Parents: 5cd9e9d
Author: Dániel Bali <ba...@gmail.com>
Authored: Tue Mar 17 16:58:57 2015 +0100
Committer: Fabian Hueske <fh...@apache.org>
Committed: Tue Apr 7 14:45:55 2015 +0200
----------------------------------------------------------------------
.../java/org/apache/flink/core/fs/Path.java | 9 +++---
.../java/org/apache/flink/core/fs/PathTest.java | 34 ++++++++++++++++++++
2 files changed, 38 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flink/blob/2f683af7/flink-core/src/main/java/org/apache/flink/core/fs/Path.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/core/fs/Path.java b/flink-core/src/main/java/org/apache/flink/core/fs/Path.java
index 5a15d6a..05bccd1 100644
--- a/flink-core/src/main/java/org/apache/flink/core/fs/Path.java
+++ b/flink-core/src/main/java/org/apache/flink/core/fs/Path.java
@@ -30,7 +30,6 @@ import java.net.URISyntaxException;
import org.apache.flink.core.io.IOReadableWritable;
import org.apache.flink.core.memory.DataInputView;
import org.apache.flink.core.memory.DataOutputView;
-import org.apache.flink.util.OperatingSystem;
import org.apache.flink.util.StringUtils;
/**
@@ -278,9 +277,6 @@ public class Path implements IOReadableWritable, Serializable {
* @return <code>true</code> if the path string contains a windows drive letter, <code>false</code> otherwise
*/
private boolean hasWindowsDrive(String path, boolean slashed) {
- if (!OperatingSystem.isWindows()) {
- return false;
- }
final int start = slashed ? 1 : 0;
return path.length() >= start + 2
&& (!slashed || path.charAt(0) == '/')
@@ -316,7 +312,10 @@ public class Path implements IOReadableWritable, Serializable {
*/
public boolean isAbsolute() {
final int start = hasWindowsDrive(uri.getPath(), true) ? 3 : 0;
- return uri.getPath().startsWith(SEPARATOR, start);
+ if (uri.getPath().length() > start) {
+ return uri.getPath().startsWith(SEPARATOR, start);
+ }
+ return true;
}
/**
http://git-wip-us.apache.org/repos/asf/flink/blob/2f683af7/flink-core/src/test/java/org/apache/flink/core/fs/PathTest.java
----------------------------------------------------------------------
diff --git a/flink-core/src/test/java/org/apache/flink/core/fs/PathTest.java b/flink-core/src/test/java/org/apache/flink/core/fs/PathTest.java
index 1912cb3..e4c4e88 100644
--- a/flink-core/src/test/java/org/apache/flink/core/fs/PathTest.java
+++ b/flink-core/src/test/java/org/apache/flink/core/fs/PathTest.java
@@ -63,6 +63,15 @@ public class PathTest {
assertEquals("/my/path", p.toUri().getPath());
assertEquals("file", p.toUri().getScheme());
+ p = new Path("C:/my/windows/path");
+ assertEquals("/C:/my/windows/path", p.toUri().getPath());
+
+ p = new Path("file:/C:/my/windows/path");
+ assertEquals("/C:/my/windows/path", p.toUri().getPath());
+
+ p = new Path("C:");
+ assertEquals("/C:", p.toUri().getPath());
+
try {
new Path((String)null);
fail();
@@ -95,6 +104,15 @@ public class PathTest {
p = new Path("./my/rel/path");
assertFalse(p.isAbsolute());
+ p = new Path("C:/my/abs/windows/path");
+ assertTrue(p.isAbsolute());
+
+ p = new Path("file:/C:");
+ assertTrue(p.isAbsolute());
+
+ p = new Path("C:");
+ assertTrue(p.isAbsolute());
+
}
@Test
@@ -115,6 +133,12 @@ public class PathTest {
p = new Path("/");
assertEquals("", p.getName());
+ p = new Path("C:/my/windows/path");
+ assertEquals("path", p.getName());
+
+ p = new Path("file:/C:/my/windows/path");
+ assertEquals("path", p.getName());
+
}
@Test
@@ -134,6 +158,9 @@ public class PathTest {
p = new Path("/");
assertNull(p.getParent());
+
+ p = new Path("C:/my/windows/path");
+ assertEquals("/C:/my/windows", p.getParent().toUri().getPath());
}
@Test
@@ -147,6 +174,10 @@ public class PathTest {
p = p.suffix("/abc");
assertEquals("/my/path/abc", p.toUri().getPath());
+ p = new Path("C:/my/windows/path");
+ p = p.suffix("/abc");
+ assertEquals("/C:/my/windows/path/abc", p.toUri().getPath());
+
}
@Test
@@ -163,6 +194,9 @@ public class PathTest {
p = new Path("/");
assertEquals(0, p.depth());
+
+ p = new Path("C:/my/windows/path");
+ assertEquals(4, p.depth());
}
@Test
[3/3] flink git commit: [FLINK-1817] Fix ClassLoaderObjectInputStream
to support primitive type classes
Posted by fh...@apache.org.
[FLINK-1817] Fix ClassLoaderObjectInputStream to support primitive type classes
This closes #565
Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/d33b4454
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/d33b4454
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/d33b4454
Branch: refs/heads/master
Commit: d33b44549d416c30f01ead9aacf5cf7ed30674ca
Parents: 23fe006
Author: Fabian Hueske <fh...@apache.org>
Authored: Thu Apr 2 01:28:08 2015 +0200
Committer: Fabian Hueske <fh...@apache.org>
Committed: Tue Apr 7 14:46:24 2015 +0200
----------------------------------------------------------------------
.../apache/flink/util/InstantiationUtil.java | 30 +++++++++++++++++++-
1 file changed, 29 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flink/blob/d33b4454/flink-core/src/main/java/org/apache/flink/util/InstantiationUtil.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/util/InstantiationUtil.java b/flink-core/src/main/java/org/apache/flink/util/InstantiationUtil.java
index c7088f5..241e56a 100644
--- a/flink-core/src/main/java/org/apache/flink/util/InstantiationUtil.java
+++ b/flink-core/src/main/java/org/apache/flink/util/InstantiationUtil.java
@@ -34,6 +34,7 @@ import java.io.ObjectOutputStream;
import java.io.ObjectStreamClass;
import java.lang.reflect.Constructor;
import java.lang.reflect.Modifier;
+import java.util.HashMap;
/**
* Utility class to create instances from class objects and checking failure reasons.
@@ -48,10 +49,37 @@ public class InstantiationUtil {
private static class ClassLoaderObjectInputStream extends ObjectInputStream {
private ClassLoader classLoader;
+ private static final HashMap<String, Class<?>> primitiveClasses
+ = new HashMap<String, Class<?>>(8, 1.0F);
+ static {
+ primitiveClasses.put("boolean", boolean.class);
+ primitiveClasses.put("byte", byte.class);
+ primitiveClasses.put("char", char.class);
+ primitiveClasses.put("short", short.class);
+ primitiveClasses.put("int", int.class);
+ primitiveClasses.put("long", long.class);
+ primitiveClasses.put("float", float.class);
+ primitiveClasses.put("double", double.class);
+ primitiveClasses.put("void", void.class);
+ }
+
@Override
public Class<?> resolveClass(ObjectStreamClass desc) throws IOException, ClassNotFoundException {
if (classLoader != null) {
- return Class.forName(desc.getName(), false, classLoader);
+ String name = desc.getName();
+ try {
+ return Class.forName(name, false, classLoader);
+ } catch (ClassNotFoundException ex) {
+ // check if class is a primitive class
+ Class<?> cl = primitiveClasses.get(name);
+ if (cl != null) {
+ // return primitive class
+ return cl;
+ } else {
+ // throw ClassNotFoundException
+ throw ex;
+ }
+ }
}
return super.resolveClass(desc);
[2/3] flink git commit: Additional tests for Path.isAbsolute()
Posted by fh...@apache.org.
Additional tests for Path.isAbsolute()
Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/23fe0062
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/23fe0062
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/23fe0062
Branch: refs/heads/master
Commit: 23fe00629e4b36e5c4d3849c2711743148369631
Parents: 2f683af
Author: Fabian Hueske <fh...@apache.org>
Authored: Sat Apr 4 21:35:38 2015 +0200
Committer: Fabian Hueske <fh...@apache.org>
Committed: Tue Apr 7 14:46:15 2015 +0200
----------------------------------------------------------------------
.../java/org/apache/flink/core/fs/Path.java | 5 +--
.../java/org/apache/flink/core/fs/PathTest.java | 35 +++++++++++++++++---
2 files changed, 32 insertions(+), 8 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/flink/blob/23fe0062/flink-core/src/main/java/org/apache/flink/core/fs/Path.java
----------------------------------------------------------------------
diff --git a/flink-core/src/main/java/org/apache/flink/core/fs/Path.java b/flink-core/src/main/java/org/apache/flink/core/fs/Path.java
index 05bccd1..75155eb 100644
--- a/flink-core/src/main/java/org/apache/flink/core/fs/Path.java
+++ b/flink-core/src/main/java/org/apache/flink/core/fs/Path.java
@@ -312,10 +312,7 @@ public class Path implements IOReadableWritable, Serializable {
*/
public boolean isAbsolute() {
final int start = hasWindowsDrive(uri.getPath(), true) ? 3 : 0;
- if (uri.getPath().length() > start) {
- return uri.getPath().startsWith(SEPARATOR, start);
- }
- return true;
+ return uri.getPath().startsWith(SEPARATOR, start);
}
/**
http://git-wip-us.apache.org/repos/asf/flink/blob/23fe0062/flink-core/src/test/java/org/apache/flink/core/fs/PathTest.java
----------------------------------------------------------------------
diff --git a/flink-core/src/test/java/org/apache/flink/core/fs/PathTest.java b/flink-core/src/test/java/org/apache/flink/core/fs/PathTest.java
index e4c4e88..8fa2cea 100644
--- a/flink-core/src/test/java/org/apache/flink/core/fs/PathTest.java
+++ b/flink-core/src/test/java/org/apache/flink/core/fs/PathTest.java
@@ -69,9 +69,6 @@ public class PathTest {
p = new Path("file:/C:/my/windows/path");
assertEquals("/C:/my/windows/path", p.toUri().getPath());
- p = new Path("C:");
- assertEquals("/C:", p.toUri().getPath());
-
try {
new Path((String)null);
fail();
@@ -98,21 +95,51 @@ public class PathTest {
@Test
public void testIsAbsolute() {
+ // UNIX
+
Path p = new Path("/my/abs/path");
assertTrue(p.isAbsolute());
+ p = new Path("/");
+ assertTrue(p.isAbsolute());
+
p = new Path("./my/rel/path");
assertFalse(p.isAbsolute());
+ p = new Path("my/rel/path");
+ assertFalse(p.isAbsolute());
+
+ // WINDOWS
+
p = new Path("C:/my/abs/windows/path");
assertTrue(p.isAbsolute());
- p = new Path("file:/C:");
+ p = new Path("y:/my/abs/windows/path");
+ assertTrue(p.isAbsolute());
+
+ p = new Path("b:\\my\\abs\\windows\\path");
assertTrue(p.isAbsolute());
p = new Path("C:");
+ assertFalse(p.isAbsolute());
+
+ p = new Path("C:my\\relative\\path");
+ assertFalse(p.isAbsolute());
+
+ p = new Path("\\my\\dir");
+ assertTrue(p.isAbsolute());
+
+ p = new Path("\\");
assertTrue(p.isAbsolute());
+ p = new Path(".\\my\\relative\\path");
+ assertFalse(p.isAbsolute());
+
+ p = new Path("my\\relative\\path");
+ assertFalse(p.isAbsolute());
+
+ p = new Path("\\\\myServer\\myDir");
+ assertTrue(p.isAbsolute());
}
@Test