diff options
author | Leif Åstrand <leif@vaadin.com> | 2014-03-18 13:48:07 +0200 |
---|---|---|
committer | Leif Åstrand <leif@vaadin.com> | 2014-04-17 07:47:43 +0000 |
commit | 134c3bb96bfeaf1eab488e685f3b5dce3093e0ef (patch) | |
tree | e50493218b765b3b31777dbcef85ae778b51a13a /server/src/com | |
parent | 83b40dd4a09282b9ff6bc58642642e507a4a293c (diff) | |
download | vaadin-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.java | 13 |
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(); |