TCI - better error message if no session found in Version subinterface

Change-Id: Id2ab0b93e9dfea0953f8621a5cfac37839feb3ae
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/Messages.java b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/Messages.java
index 19a2020..9dc2396 100644
--- a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/Messages.java
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/Messages.java
@@ -42,6 +42,7 @@
 	public static String ProjectSubInterfaceImpl_ProjectDoesNotExist;
 	public static String ProjectSubInterfaceImpl_ProjectResources_Not_Deleted;
 	public static String ProjectSubInterfaceImpl_ProjectState_Not_Found;
+	public static String VersionSubInterfaceImpl_0;
 	public static String VersionSubInterfaceImpl_BranchName_Reserved_1;
 	public static String VersionSubInterfaceImpl_BranchName_Reserved_2;
 	public static String VersionSubInterfaceImpl_ChangePackageFragmentProviderAdapterMissing;
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/VersionSubInterfaceImpl.java b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/VersionSubInterfaceImpl.java
index 8d538b4..d0d90c0 100644
--- a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/VersionSubInterfaceImpl.java
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/VersionSubInterfaceImpl.java
@@ -271,6 +271,13 @@
 		final String proxyId = generateProxyId(projectId.getId());
 
 		final ESSessionId resolvedSession = getAccessControl().getSessions().resolveSessionById(sessionId.getId());
+
+		if (resolvedSession == null) {
+			throw new ESException(
+				MessageFormat.format(
+					Messages.VersionSubInterfaceImpl_0, sessionId.getId()));
+		}
+
 		final SessionId session = APIUtil.toInternal(SessionId.class, resolvedSession);
 		final Optional<ChangePackageFragmentUploadAdapter> maybeAdapter = ESCollections.find(session.eAdapters(),
 			ChangePackageFragmentUploadAdapter.class);
diff --git a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/messages.properties b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/messages.properties
index a821c61..b37b381 100644
--- a/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/messages.properties
+++ b/bundles/org.eclipse.emf.emfstore.server/src/org/eclipse/emf/emfstore/internal/server/core/subinterfaces/messages.properties
@@ -19,6 +19,7 @@
 ProjectSubInterfaceImpl_ProjectDoesNotExist=Project with the id: {0} doesn't exist.
 ProjectSubInterfaceImpl_ProjectResources_Not_Deleted=Project resource files couldn't be deleted.
 ProjectSubInterfaceImpl_ProjectState_Not_Found=Couldn't find project state.
+VersionSubInterfaceImpl_0=null session for session with ID {0} encountered
 VersionSubInterfaceImpl_BranchName_Reserved_1=Reserved branch name '
 VersionSubInterfaceImpl_BranchName_Reserved_2=' must not be used.
 VersionSubInterfaceImpl_ChangePackageFragmentProviderAdapterMissing=Change package fragment provider adapter missing for given ID