You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flink.apache.org by tw...@apache.org on 2018/05/15 14:34:07 UTC

flink git commit: [FLINK-9361] [sql-client] Fix refresh interval in changelog mode

Repository: flink
Updated Branches:
  refs/heads/master 89ac3dbe4 -> 0b5e124ba


[FLINK-9361] [sql-client] Fix refresh interval in changelog mode

This closes #6012.


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/0b5e124b
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/0b5e124b
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/0b5e124b

Branch: refs/heads/master
Commit: 0b5e124ba24230026995cbb93444f30af7d51363
Parents: 89ac3db
Author: Timo Walther <tw...@apache.org>
Authored: Mon May 14 16:48:12 2018 +0200
Committer: Timo Walther <tw...@apache.org>
Committed: Tue May 15 16:32:38 2018 +0200

----------------------------------------------------------------------
 .../client/cli/CliChangelogResultView.java      |  5 ++-
 .../flink/table/client/cli/CliResultView.java   | 37 ++++++++++++++------
 .../apache/flink/table/client/cli/CliView.java  |  2 +-
 3 files changed, 32 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/0b5e124b/flink-libraries/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/CliChangelogResultView.java
----------------------------------------------------------------------
diff --git a/flink-libraries/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/CliChangelogResultView.java b/flink-libraries/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/CliChangelogResultView.java
index 7ffd432..cf17933 100644
--- a/flink-libraries/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/CliChangelogResultView.java
+++ b/flink-libraries/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/CliChangelogResultView.java
@@ -89,6 +89,9 @@ public class CliChangelogResultView extends CliResultView<CliChangelogResultView
 	@Override
 	protected void display() {
 		// scroll down before displaying
+		if (scrolling > 0) {
+			selectedRow = NO_ROW_SELECTED;
+		}
 		scrollDown(scrolling);
 		scrolling = 0;
 
@@ -248,7 +251,7 @@ public class CliChangelogResultView extends CliResultView<CliChangelogResultView
 
 	@Override
 	protected List<AttributedString> computeFooterLines() {
-		return formatTwoLineHelpOptions(client.getWidth(), getHelpOptions());
+		return formatTwoLineHelpOptions(getWidth(), getHelpOptions());
 	}
 
 	// --------------------------------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/flink/blob/0b5e124b/flink-libraries/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/CliResultView.java
----------------------------------------------------------------------
diff --git a/flink-libraries/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/CliResultView.java b/flink-libraries/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/CliResultView.java
index 1d9df3f..9f893bb 100644
--- a/flink-libraries/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/CliResultView.java
+++ b/flink-libraries/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/CliResultView.java
@@ -78,18 +78,24 @@ public abstract class CliResultView<O extends Enum<O>> extends CliView<O, Void>
 
 	protected void increaseRefreshInterval() {
 		refreshInterval = Math.min(REFRESH_INTERVALS.size() - 1, refreshInterval + 1);
-		refreshThread.interrupt();
 
 		// reset view
 		resetAllParts();
+
+		synchronized (refreshThread) {
+			refreshThread.notify();
+		}
 	}
 
 	protected void decreaseRefreshInterval(int minInterval) {
 		refreshInterval = Math.max(minInterval, refreshInterval - 1);
-		refreshThread.interrupt();
 
 		// reset view
 		resetAllParts();
+
+		synchronized (refreshThread) {
+			refreshThread.notify();
+		}
 	}
 
 	protected void selectRowUp() {
@@ -148,6 +154,9 @@ public abstract class CliResultView<O extends Enum<O>> extends CliView<O, Void>
 	protected void stopRetrieval() {
 		// stop retrieval
 		refreshThread.isRunning = false;
+		synchronized (refreshThread) {
+			refreshThread.notify();
+		}
 	}
 
 	protected boolean isRetrieving() {
@@ -234,10 +243,14 @@ public abstract class CliResultView<O extends Enum<O>> extends CliView<O, Void>
 				if (interval >= 0) {
 					// refresh according to specified interval
 					if (interval > 0) {
-						try {
-							Thread.sleep(interval);
-						} catch (InterruptedException e) {
-							continue;
+						synchronized (RefreshThread.this) {
+							if (isRunning) {
+								try {
+									RefreshThread.this.wait(interval);
+								} catch (InterruptedException e) {
+									continue;
+								}
+							}
 						}
 					}
 
@@ -254,10 +267,14 @@ public abstract class CliResultView<O extends Enum<O>> extends CliView<O, Void>
 					}
 				} else {
 					// keep the thread running but without refreshing
-					try {
-						Thread.sleep(100L);
-					} catch (InterruptedException e) {
-						// do nothing
+					synchronized (RefreshThread.this) {
+						if (isRunning) {
+							try {
+								RefreshThread.this.wait(100);
+							} catch (InterruptedException e) {
+								// continue
+							}
+						}
 					}
 				}
 			}

http://git-wip-us.apache.org/repos/asf/flink/blob/0b5e124b/flink-libraries/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/CliView.java
----------------------------------------------------------------------
diff --git a/flink-libraries/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/CliView.java b/flink-libraries/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/CliView.java
index 3fa1aab..7cc3bb7 100644
--- a/flink-libraries/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/CliView.java
+++ b/flink-libraries/flink-sql-client/src/main/java/org/apache/flink/table/client/cli/CliView.java
@@ -57,7 +57,7 @@ public abstract class CliView<OP extends Enum<OP>, OUT> {
 
 	protected int offsetY;
 
-	private boolean isRunning;
+	private volatile boolean isRunning;
 
 	private Thread inputThread;