summaryrefslogtreecommitdiffstats
path: root/server/src/com
diff options
context:
space:
mode:
authorLeif Åstrand <leif@vaadin.com>2014-03-18 13:48:07 +0200
committerLeif Åstrand <leif@vaadin.com>2014-04-17 07:47:43 +0000
commit134c3bb96bfeaf1eab488e685f3b5dce3093e0ef (patch)
treee50493218b765b3b31777dbcef85ae778b51a13a /server/src/com
parent83b40dd4a09282b9ff6bc58642642e507a4a293c (diff)
downloadvaadin-framework-134c3bb96bfeaf1eab488e685f3b5dce3093e0ef.tar.gz
vaadin-framework-134c3bb96bfeaf1eab488e685f3b5dce3093e0ef.zip
Clarify lock check assert message if another session is locked (#13473)
Change-Id: I1120ad5acd553e22db95e3635fffbd453fd26310
Diffstat (limited to 'server/src/com')
-rw-r--r--server/src/com/vaadin/server/AbstractClientConnector.java13
1 files changed, 11 insertions, 2 deletions
diff --git a/server/src/com/vaadin/server/AbstractClientConnector.java b/server/src/com/vaadin/server/AbstractClientConnector.java
index a73ca3d985..9fc4a9c3a2 100644
--- a/server/src/com/vaadin/server/AbstractClientConnector.java
+++ b/server/src/com/vaadin/server/AbstractClientConnector.java
@@ -132,13 +132,22 @@ public abstract class AbstractClientConnector implements ClientConnector,
/* Documentation copied from interface */
@Override
public void markAsDirty() {
- assert getSession() == null || getSession().hasLock() : "Session must be locked when markAsDirty() is called";
+ assert getSession() == null || getSession().hasLock() : buildLockAssertMessage("markAsDirty()");
UI uI = getUI();
if (uI != null) {
uI.getConnectorTracker().markDirty(this);
}
}
+ private String buildLockAssertMessage(String method) {
+ if (VaadinService.isOtherSessionLocked(getSession())) {
+ return "The session of this connecor is not locked, but there is another session that is locked. "
+ + "This might be caused by accidentally using a connector that belongs to another session.";
+ } else {
+ return "Session must be locked when " + method + " is called";
+ }
+ }
+
/**
* Registers an RPC interface implementation for this component.
*
@@ -217,7 +226,7 @@ public abstract class AbstractClientConnector implements ClientConnector,
* @see #getState()
*/
protected SharedState getState(boolean markAsDirty) {
- assert getSession() == null || getSession().hasLock() : "Session must be locked when getState() is called";
+ assert getSession() == null || getSession().hasLock() : buildLockAssertMessage("getState()");
if (null == sharedState) {
sharedState = createState();