Active Learning Sidebar gives Internal Error
**Describe the bug**
Entering the annotation page give Internal Error with stack trace of Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0

**To Reproduce**
Steps to reproduce the behavior:
1. Create a project and upload a document for the project
2. Click on Annotation
3. See error
4. Press back, then you can see the document.

**Expected behavior**
Should not throw error

**Stack Trace**
```
2018-07-03 16:49:29 ERROR [kumar] DefaultExceptionMapper - Unexpected error occurred
org.apache.wicket.WicketRuntimeException: Error attaching this container for rendering: [SidebarPanel [Component id = leftSidebar]]
	at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1837) ~[wicket-core-7.10.0.jar!/:7.10.0]
	at org.apache.wicket.Component.onBeforeRender(Component.java:3916) ~[wicket-core-7.10.0.jar!/:7.10.0]
	at org.apache.wicket.Component.internalBeforeRender(Component.java:950) ~[wicket-core-7.10.0.jar!/:7.10.0]
	at org.apache.wicket.Component.beforeRender(Component.java:1018) ~[wicket-core-7.10.0.jar!/:7.10.0]
	at org.apache.wicket.Component.internalPrepareForRender(Component.java:2236) ~[wicket-core-7.10.0.jar!/:7.10.0]
	at org.apache.wicket.Component.prepareForRender(Component.java:2275) ~[wicket-core-7.10.0.jar!/:7.10.0]
	at org.apache.wicket.page.XmlPartialPageUpdate.writeComponent(XmlPartialPageUpdate.java:98) ~[wicket-core-7.10.0.jar!/:7.10.0]
	at org.apache.wicket.page.PartialPageUpdate.writeComponents(PartialPageUpdate.java:248) ~[wicket-core-7.10.0.jar!/:7.10.0] `

`Caused by: java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
	at java.util.ArrayList.rangeCheck(ArrayList.java:653) ~[?:1.8.0_131]
	at java.util.ArrayList.get(ArrayList.java:429) ~[?:1.8.0_131]
	at de.tudarmstadt.ukp.inception.active.learning.sidebar.ActiveLearningSidebar.createFeatureEditor(ActiveLearningSidebar.java:449) ~[inception-active-learning-0.4.0-SNAPSHOT.jar!/:?]
	at de.tudarmstadt.ukp.inception.active.learning.sidebar.ActiveLearningSidebar.createRecommendationOperationForm(ActiveLearningSidebar.java:403) ~[inception-active-learning-0.4.0-SNAPSHOT.jar!/:?]
	at de.tudarmstadt.ukp.inception.active.learning.sidebar.ActiveLearningSidebar.<init>(ActiveLearningSidebar.java:176) ~[inception-active-learning-0.4.0-SNAPSHOT.jar!/:?]
	at de.tudarmstadt.ukp.inception.active.learning.sidebar.ActiveLearningSidebarFactory.create(ActiveLearningSidebarFactory.java:52) ~[inception-active-learning-0.4.0-SNAPSHOT.jar!/:?]
	at de.tudarmstadt.ukp.clarin.webanno.ui.annotation.sidebar.SidebarPanel$1.getPanel(SidebarPanel.java:101) ~[webanno-ui-annotation-3.5.0-SNAPSHOT.jar!/:?]
	at de.tudarmstadt.ukp.clarin.webanno.ui.annotation.sidebar.SidebarPanel$1.getPanel(SidebarPanel.java:89) ~[webanno-ui-annotation-3.5.0-SNAPSHOT.jar!/:?]
	at org.apache.wicket.extensions.markup.html.tabs.TabbedPanel.setCurrentTab(TabbedPanel.java:422) ~[wicket-extensions-7.10.0.jar!/:7.10.0]
	at org.apache.wicket.extensions.markup.html.tabs.TabbedPanel.setSelectedTab(TabbedPanel.java:397) ~[wicket-extensions-7.10.0.jar!/:7.10.0]
	at org.apache.wicket.extensions.markup.html.tabs.TabbedPanel.onBeforeRender(TabbedPanel.java:268) ~[wicket-extensions-7.10.0.jar!/:7.10.0]
	at de.tudarmstadt.ukp.clarin.webanno.ui.annotation.sidebar.SidebarTabbedPanel.onBeforeRender(SidebarTabbedPanel.java:82) ~[webanno-ui-annotation-3.5.0-SNAPSHOT.jar!/:?]
	at org.apache.wicket.Component.internalBeforeRender(Component.java:950) ~[wicket-core-7.10.0.jar!/:7.10.0]
	at org.apache.wicket.Component.beforeRender(Component.java:1018) ~[wicket-core-7.10.0.jar!/:7.10.0]
	at org.apache.wicket.MarkupContainer.onBeforeRenderChildren(MarkupContainer.java:1825) ~[wicket-core-7.10.0.jar!/:7.10.0]
	... 150 more
```

**Please complete the following information:**
 - INCEpTION 𝜶 -- 0.4.0-SNAPSHOT (2018-07-02 13:20:46, build 5bedb5eb63bf9a8a2771fc2f56c0b0bf09a54cc7)
 - chrome



diff --git a/inception-active-learning/src/main/java/de/tudarmstadt/ukp/inception/active/learning/sidebar/ActiveLearningSidebar.html b/inception-active-learning/src/main/java/de/tudarmstadt/ukp/inception/active/learning/sidebar/ActiveLearningSidebar.html
index 7f5581fddb..17c19324f5 100644
--- a/inception-active-learning/src/main/java/de/tudarmstadt/ukp/inception/active/learning/sidebar/ActiveLearningSidebar.html
+++ b/inception-active-learning/src/main/java/de/tudarmstadt/ukp/inception/active/learning/sidebar/ActiveLearningSidebar.html
@@ -25,6 +25,7 @@
         <h3 class="panel-title">Active Learning</h3>
       </div>
       <div class="panel-body flex-v-container">
+        <span class="col-sm-12" wicket:id="noRecommenders">no Recommenders</span>
         <form class="panel panel-default panel-small" wicket:id="sessionControlForm">
           <div class="panel-heading">
             <h3 class="panel-title">Session</h3>
diff --git a/inception-active-learning/src/main/java/de/tudarmstadt/ukp/inception/active/learning/sidebar/ActiveLearningSidebar.java b/inception-active-learning/src/main/java/de/tudarmstadt/ukp/inception/active/learning/sidebar/ActiveLearningSidebar.java
index f0229d0a3b..9b2052f009 100644
--- a/inception-active-learning/src/main/java/de/tudarmstadt/ukp/inception/active/learning/sidebar/ActiveLearningSidebar.java
+++ b/inception-active-learning/src/main/java/de/tudarmstadt/ukp/inception/active/learning/sidebar/ActiveLearningSidebar.java
@@ -120,6 +120,7 @@ public class ActiveLearningSidebar
     private static final String CID_USER_ACTION = "userAction";
     private static final String CID_RECOMMENDED_ANNOTATION = "recommendedAnnotation";
     private static final String CID_JUMP_TO_ANNOTATION = "jumpToAnnotation";
+    private static final String CID_NO_RECOMMENDERS = "noRecommenders";
     
     private static final String ANNOTATION_MARKER = "VAnnotationMarker";
     private static final String TEXT_MARKER = "VTextMarker";
@@ -143,6 +144,7 @@ public class ActiveLearningSidebar
     private boolean sessionActive = false;
     private boolean hasUnseenRecommendation = false;
     private boolean hasSkippedRecommendation = false;
+    private boolean doExistRecommenders = true;
     
     private ActiveLearningRecommender activeLearningRecommender;
     private AnnotationObject currentRecommendation;
@@ -170,6 +172,7 @@ public class ActiveLearningSidebar
         
         mainContainer = new WebMarkupContainer(CID_MAIN_CONTAINER);
         mainContainer.setOutputMarkupId(true);
+        mainContainer.add(createNoRecommendersMessage());
         mainContainer.add(createSessionControlForm());
         mainContainer.add(createNoRecommendationLabel());
         mainContainer.add(createLearnFromSkippedRecommendationForm());
@@ -180,7 +183,7 @@ public class ActiveLearningSidebar
         add(confirmationDialog);
     }
 
-    private Form<?> createSessionControlForm()
+    private Label createNoRecommendersMessage()
     {
         // Use the currently selected layer from the annotation detail editor panel as the
         // default choice in the active learning mode.
@@ -192,15 +195,24 @@ public class ActiveLearningSidebar
         else if (!layersWithRecommenders.isEmpty()) {
             selectedLayer = Model.of(layersWithRecommenders.get(0));
         }
-        // If there are no layers with recommenders, then choose nothing.
+        // If there are no layers with recommenders, then choose nothing and show no recommenders
+        // message.
         else {
-            // FIXME: in this case, we might display a nice message saying that none of the layers
-            // have any recommenders configured.
             selectedLayer = Model.of();
+            doExistRecommenders = false;
         }
-        
+        Label noRecommendersMessage = new Label(CID_NO_RECOMMENDERS, "None of the layers have any "
+            + "recommenders configured. Please set the recommenders first in the Project "
+            + "Settings.");
+        noRecommendersMessage.add(LambdaBehavior.onConfigure(component -> component.setVisible
+            (!doExistRecommenders)));
+        return noRecommendersMessage;
+    }
+
+    private Form<?> createSessionControlForm()
+    {
         Form<?> form = new Form<Void>(CID_SESSION_CONTROL_FORM);
-        
+
         DropDownChoice<AnnotationLayer> layersDropdown = new DropDownChoice<>(CID_SELECT_LAYER);
         layersDropdown.setModel(selectedLayer);
         layersDropdown.setChoices(LambdaModel.of(this::listLayersWithRecommenders));
@@ -214,6 +226,8 @@ public class ActiveLearningSidebar
                 CID_LAYER_SELECTION_BUTTON, this::actionStartStopTraining);
         startStopButton.setModel(LambdaModel.of(() -> sessionActive ? "Terminate" : "Start"));
         form.add(startStopButton);
+        form.add(
+            LambdaBehavior.onConfigure(component -> component.setVisible(doExistRecommenders)));
 
         return form;
     }
@@ -400,7 +414,9 @@ public class ActiveLearningSidebar
                 currentRecommendation != null ? currentRecommendation.getConfidence() : 0.0)));
         recommendationForm.add(new Label(CID_RECOMMENDED_DIFFERENCE, LambdaModel.of(() ->
                 currentDifference != null ? currentDifference.getDifference() : 0.0)));
-        recommendationForm.add(createFeatureEditor());
+        recommendationForm.add(
+            (selectedLayer.getObject() != null && currentRecommendation != null) ?
+                createFeatureEditor() : new Label("editor").setVisible(false));
 
         recommendationForm.add(new LambdaAjaxButton<>(CID_ANNOTATE_BUTTON, this::actionAnnotate));
         recommendationForm.add(new LambdaAjaxLink(CID_SKIP_BUTTON, this::actionSkip));
@@ -440,14 +456,9 @@ public class ActiveLearningSidebar
 
     private FeatureEditor createFeatureEditor()
     {
-        if (currentRecommendation != null) {
-            annotationFeature = annotationService
-                .getFeature(currentRecommendation.getFeature(), selectedLayer.getObject());
-        }
-        else {
-            annotationFeature = annotationService
-                .listAnnotationFeature(selectedLayer.getObject()).get(0);
-        }
+        annotationFeature = annotationService
+            .getFeature(currentRecommendation.getFeature(), selectedLayer.getObject());
+
         FeatureSupport featureSupport = featureSupportRegistry.getFeatureSupport(annotationFeature);
 
         featureState = new FeatureState(annotationFeature, null);
['inception-active-learning/src/main/java/de/tudarmstadt/ukp/inception/active/learning/sidebar/ActiveLearningSidebar.html', 'inception-active-learning/src/main/java/de/tudarmstadt/ukp/inception/active/learning/sidebar/ActiveLearningSidebar.java']