You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@netbeans.apache.org by jt...@apache.org on 2020/12/26 14:40:13 UTC
[netbeans-html4j] 18/25: Allow only one deferred processing before
flush
This is an automated email from the ASF dual-hosted git repository.
jtulach pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/netbeans-html4j.git
commit ae7d00a2693e25492a16eae3cd96c2da6bb9b8a1
Author: Jaroslav Tulach <ja...@apidesign.org>
AuthorDate: Thu Dec 24 07:17:34 2020 +0100
Allow only one deferred processing before flush
---
.../main/java/org/netbeans/html/presenters/spi/Generic.java | 12 ++++++++++--
.../org/netbeans/html/presenters/spi/test/GenericTCK.java | 2 +-
2 files changed, 11 insertions(+), 3 deletions(-)
diff --git a/generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java b/generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java
index 723a3c9..3204355 100644
--- a/generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java
+++ b/generic/src/main/java/org/netbeans/html/presenters/spi/Generic.java
@@ -706,6 +706,7 @@ abstract class Generic implements Fn.Presenter, Fn.KeepAlive, Flushable {
}
private StringBuilder deferred;
+ private boolean deferredDisabled;
private Collection<Object> arguments = new LinkedList<Object>();
private StringBuilder getDeferred(boolean clear) {
@@ -713,6 +714,9 @@ abstract class Generic implements Fn.Presenter, Fn.KeepAlive, Flushable {
StringBuilder sb = deferred;
if (clear) {
deferred = null;
+ if (sb != null) {
+ deferredDisabled = true;
+ }
}
return sb;
}
@@ -753,6 +757,9 @@ abstract class Generic implements Fn.Presenter, Fn.KeepAlive, Flushable {
log(Level.FINE, "flush#{1}: {0}", def, id);
exec(id, Strings.flushExec(key, id).toString());
}
+ if (topMostCall() == null) {
+ deferredDisabled = false;
+ }
}
}
@@ -931,9 +938,10 @@ abstract class Generic implements Fn.Presenter, Fn.KeepAlive, Flushable {
arguments.add(args);
synchronized (lock()) {
+ boolean synchronizedExecution = wait4js || deferredDisabled;
int callId = nextCallId();
- sb.insert(0, Strings.invokeImplFn(id, wait4js, key, callId));
- if (wait4js) {
+ sb.insert(0, Strings.invokeImplFn(id, synchronizedExecution, key, callId));
+ if (synchronizedExecution) {
return exec(callId, sb.toString());
} else {
deferExec(sb);
diff --git a/generic/src/test/java/org/netbeans/html/presenters/spi/test/GenericTCK.java b/generic/src/test/java/org/netbeans/html/presenters/spi/test/GenericTCK.java
index 872ad98..8c0ba9a 100644
--- a/generic/src/test/java/org/netbeans/html/presenters/spi/test/GenericTCK.java
+++ b/generic/src/test/java/org/netbeans/html/presenters/spi/test/GenericTCK.java
@@ -58,7 +58,7 @@ final class GenericTCK extends JavaScriptTCK {
}
}
});
- cdl.await(3, TimeUnit.SECONDS);
+ cdl.await(1, TimeUnit.SECONDS);
if (error[0] != null) {
throw error[0];
}
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@netbeans.apache.org
For additional commands, e-mail: commits-help@netbeans.apache.org
For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists