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