diff --git a/src/main/java/org/olat/core/CoreSpringInitializer.java b/src/main/java/org/olat/core/CoreSpringInitializer.java
index 4f31bda1c3359cd82484a022bb6ca7d9a071d0c3..fa44262a02d0a1c704126ba4a3caff2445d33fd4 100644
--- a/src/main/java/org/olat/core/CoreSpringInitializer.java
+++ b/src/main/java/org/olat/core/CoreSpringInitializer.java
@@ -61,8 +61,8 @@ public class CoreSpringInitializer implements ApplicationContextInitializer<Conf
 		}
 
 		@Override
-		public Object getProperty(String name) {
-			if("jms.provider".equals(name)) {
+		public Object getProperty(String propertyName) {
+			if("jms.provider".equals(propertyName)) {
 				return jmsProvider;
 			}
 			return null;
diff --git a/src/main/java/org/olat/core/commons/services/text/impl/nutch/NGramProfile.java b/src/main/java/org/olat/core/commons/services/text/impl/nutch/NGramProfile.java
index 58da3cafdda6cdf7a3fd31c2ac441f7d40cdcb04..2b260630a2f3d978d5379f54e479c5adc0de4766 100644
--- a/src/main/java/org/olat/core/commons/services/text/impl/nutch/NGramProfile.java
+++ b/src/main/java/org/olat/core/commons/services/text/impl/nutch/NGramProfile.java
@@ -125,23 +125,23 @@ public class NGramProfile {
   /**
    * Add ngrams from a single word to this profile
    * 
-   * @param word is the word to add
+   * @param w is the word to add
    */
-  public void add(StringBuffer word) {
-    for (int i=minLength; (i <= maxLength) && (i < word.length()); i++) {
-      add(word, i);
+  public void add(StringBuffer w) {
+    for (int i=minLength; (i <= maxLength) && (i < w.length()); i++) {
+      add(w, i);
     }
   }
 
   /**
    * Add the last NGrams from the specified word.
    */
-  private void add(QuickStringBuffer word) {
-    int wlen = word.length();
+  private void add(QuickStringBuffer w) {
+    int wlen = w.length();
     if (wlen >= minLength) {
         int max = Math.min(maxLength, wlen);
         for (int i=minLength; i<=max; i++) {
-            add(word.subSequence(wlen-i, wlen));
+            add(w.subSequence(wlen-i, wlen));
         }
     }
   }
@@ -200,12 +200,12 @@ public class NGramProfile {
   }
 
   /**
-   * @param word
+   * @param w
    * @param n sequence length
    */
-  private void add(StringBuffer word, int n) {
-    for (int i=0; i <= word.length()-n; i++) {
-      add(word.subSequence(i, i + n));
+  private void add(StringBuffer w, int n) {
+    for (int i=0; i <= w.length()-n; i++) {
+      add(w.subSequence(i, i + n));
     }
   }
     
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableFilter.java b/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableFilter.java
index d437e7e3989adb5d0de9acc5713979e26e374aa0..579d68d70e351a2b9705da187f8e46968de74fb4 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableFilter.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/elements/FlexiTableFilter.java
@@ -31,11 +31,17 @@ public class FlexiTableFilter {
 	
 	private final String label;
 	private final String filter;
+	private final String iconLeftCSS;
 	private boolean selected;
 	
 	public FlexiTableFilter(String label, String filter) {
+		this(label, filter, null);
+	}
+	
+	public FlexiTableFilter(String label, String filter,String iconLeftCSS) {
 		this.label = label;
 		this.filter = filter;
+		this.iconLeftCSS = iconLeftCSS;
 	}
 	
 	public String getLabel() {
@@ -46,6 +52,10 @@ public class FlexiTableFilter {
 		return filter;
 	}
 
+	public String getIconLeftCSS() {
+		return iconLeftCSS;
+	}
+
 	public boolean isSelected() {
 		return selected;
 	}
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
index dcbb208453b19f4688945cc11501b5c26e3f481d..abb0a826671633af3600ff9bc377b6da89cae2f5 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/AbstractFlexiTableRenderer.java
@@ -230,8 +230,11 @@ public abstract class AbstractFlexiTableRenderer extends DefaultComponentRendere
 			} else {
 				sb.append("<li><a href=\"javascript:")
 				  .append(FormJSHelper.getXHRFnCallFor(theForm, dispatchId, 1, new NameValuePair("filter", filter.getFilter())))
-				  .append("\">").append("<i class='o_icon o_icon_check o_icon-fw'> </i> ", filter.isSelected())
-				  .append(filter.getLabel()).append("</a></li>");
+				  .append("\">").append("<i class='o_icon o_icon_check o_icon-fw'> </i> ", filter.isSelected());
+				if(filter.getIconLeftCSS() != null) {
+					sb.append("<i class='o_icon ").append(filter.getIconLeftCSS()).append("'> </i> ");
+				}
+				sb.append(filter.getLabel()).append("</a></li>");
 				if(filter.isSelected()) {
 					selected = filter.getLabel();
 				}
diff --git a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
index 1572d351876eafbd31682ec90802139c8ae93081..53e04100522abeb545192bd66bd3e4ae51ef4a84 100644
--- a/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
+++ b/src/main/java/org/olat/core/gui/components/form/flexible/impl/elements/table/FlexiTableElementImpl.java
@@ -759,6 +759,7 @@ public class FlexiTableElementImpl extends FormItemImpl implements FlexiTableEle
 		if(dataModel instanceof SortableFlexiTableDataModel) {
 			((SortableFlexiTableDataModel<?>)dataModel).sort(key);
 		} else if(dataSource != null) {
+			currentPage = 0;
 			dataSource.clear();
 			dataSource.load(null, conditionalQueries, 0, getPageSize(), orderBy);
 		}
diff --git a/src/main/java/org/olat/repository/RepositoryManager.java b/src/main/java/org/olat/repository/RepositoryManager.java
index 75377cb1ab64dc8db1068a45d45ac8aadfcb6732..78ea2c419b20d29af44cf0eaa80b95ec49d5364e 100644
--- a/src/main/java/org/olat/repository/RepositoryManager.java
+++ b/src/main/java/org/olat/repository/RepositoryManager.java
@@ -36,7 +36,6 @@ import java.util.List;
 import java.util.Map;
 
 import javax.persistence.LockModeType;
-import javax.persistence.Query;
 import javax.persistence.TypedQuery;
 
 import org.olat.admin.securitygroup.gui.IdentitiesAddEvent;
@@ -878,9 +877,10 @@ public class RepositoryManager extends BasicManager {
 	 */
 	public List<RepositoryEntry> queryByInitialAuthor(String initialAuthor) {
 		String query = "select v from org.olat.repository.RepositoryEntry v where v.initialAuthor= :initialAuthor";
-		DBQuery dbquery = dbInstance.createQuery(query);
-		dbquery.setString("initialAuthor", initialAuthor);
-		return dbquery.list();
+		return dbInstance.getCurrentEntityManager()
+				.createQuery(query, RepositoryEntry.class)
+				.setParameter("initialAuthor", initialAuthor)
+				.getResultList();
 	}
 
 	/**
@@ -1098,14 +1098,14 @@ public class RepositoryManager extends BasicManager {
 	}
 	
 	public int countGenericANDQueryWithRolesRestriction(SearchRepositoryEntryParameters params) {
-		Query dbQuery = createGenericANDQueryWithRolesRestriction(params, false, true);
-		Number count = (Number)dbQuery.getSingleResult();
+		TypedQuery<Number> dbQuery = createGenericANDQueryWithRolesRestriction(params, false, Number.class);
+		Number count = dbQuery.getSingleResult();
 		return count.intValue();
 	}
 	
 	public List<RepositoryEntry> genericANDQueryWithRolesRestriction(SearchRepositoryEntryParameters params, int firstResult, int maxResults, boolean orderBy) {
 		
-		Query dbQuery = createGenericANDQueryWithRolesRestriction(params, orderBy, false);
+		TypedQuery<RepositoryEntry> dbQuery = createGenericANDQueryWithRolesRestriction(params, orderBy, RepositoryEntry.class);
 		dbQuery.setFirstResult(firstResult);
 		if(maxResults > 0) {
 			dbQuery.setMaxResults(maxResults);
@@ -1114,7 +1114,7 @@ public class RepositoryManager extends BasicManager {
 		return res;
 	}
 	
-	private Query createGenericANDQueryWithRolesRestriction(SearchRepositoryEntryParameters params, boolean orderBy, boolean count) {
+	private <T> TypedQuery<T> createGenericANDQueryWithRolesRestriction(SearchRepositoryEntryParameters params, boolean orderBy, Class<T> type) {
 		String displayName = params.getDisplayName();
 		String author = params.getAuthor();
 		String desc = params.getDesc();
@@ -1128,6 +1128,7 @@ public class RepositoryManager extends BasicManager {
 		boolean var_displayname = StringHelper.containsNonWhitespace(displayName);
 		boolean var_desc = StringHelper.containsNonWhitespace(desc);
 		boolean var_resourcetypes = (resourceTypes != null && resourceTypes.size() > 0);
+		boolean count = Number.class.equals(type);
 		
 		StringBuilder query = new StringBuilder();
 		if(count) {
@@ -1264,7 +1265,7 @@ public class RepositoryManager extends BasicManager {
 			query.append(" order by v.displayname, v.key ASC");
 		}
 		
-		Query dbQuery = dbInstance.getCurrentEntityManager().createQuery(query.toString());
+		TypedQuery<T> dbQuery = dbInstance.getCurrentEntityManager().createQuery(query.toString(), type);
 		if(institut) {
 			dbQuery.setParameter("institution", institution);
 		}
diff --git a/src/main/java/org/olat/repository/SharedFolderSecurityCallback.java b/src/main/java/org/olat/repository/SharedFolderSecurityCallback.java
index 8ba939aa87e3d005a18d3e4952d6bd903604ef74..90316e65ae1861608aa0f64a64fb296a949836d8 100644
--- a/src/main/java/org/olat/repository/SharedFolderSecurityCallback.java
+++ b/src/main/java/org/olat/repository/SharedFolderSecurityCallback.java
@@ -121,12 +121,12 @@ public class SharedFolderSecurityCallback implements VFSSecurityCallback {
 	 * 
 	 * @param path
 	 */
-	private void initSharedFolderQuota(String relPath) {
+	private void initSharedFolderQuota(String path) {
 		QuotaManager qm = QuotaManager.getInstance();
-		sharedFolderQuota = qm.getCustomQuota(relPath);
+		sharedFolderQuota = qm.getCustomQuota(path);
 		if (sharedFolderQuota == null) {
 			Quota defQuota = qm.getDefaultQuota(QuotaConstants.IDENTIFIER_DEFAULT_COURSE);
-			sharedFolderQuota = QuotaManager.getInstance().createQuota(relPath, defQuota.getQuotaKB(), defQuota.getUlLimitKB());
+			sharedFolderQuota = QuotaManager.getInstance().createQuota(path, defQuota.getQuotaKB(), defQuota.getUlLimitKB());
 		}
 	}
 
diff --git a/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties
index 5947a4860febd3f2829a1f6ce0cdbead107d8504..61de6f8ad5e7b81b595ccb2942f83ea8533380c0 100644
--- a/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/repository/_i18n/LocalStrings_de.properties
@@ -81,6 +81,8 @@ table.header.freePlace=$org.olat.group.ui.main\:table.header.freePlace
 table.header.tutors=$org.olat.group.ui.main\:table.header.tutors
 table.header.participants=$org.olat.group.ui.main\:table.header.participants
 table.header.waitingList=$org.olat.group.ui.main\:table.header.waitingList
+table.search.mycourses.desc=Placeholder
+table.search.author.desc=Placeholder
 dialog.modal.bg.send.mail=$org.olat.group.ui.main\:dialog.modal.bg.send.mail
 dialog.modal.bg.leave.text=$org.olat.group.ui.main\:dialog.modal.bg.leave.text
 nomembers=XXX No members
@@ -368,6 +370,7 @@ filter.not.passed=Nicht bestanden
 filter.without.passed.infos=Keine Bewertung
 filter.old.courses=Abgeschlossene Kurses
 filter.selected=\u2713
+filter.show.all=Alle anzeigen
 form.clean.catalog=Alle Katalogeintr\u00E4ge des Kurses l\u00F6schen.
 form.clean.groups=Alle Betreuer und Teilnehmer aus den Lern- und Rechtegruppen des Kurses austragen.
 form.layout.cssfile=Gew\u00E4hlte CSS-Datei
diff --git a/src/main/java/org/olat/repository/controllers/ReferencableEntriesSearchController.java b/src/main/java/org/olat/repository/controllers/ReferencableEntriesSearchController.java
index 8150384785c1fd7f14b2072c0d16f95043d5e939..9e9e75b5068be5feecd238ca2f7e7f655abbd386 100644
--- a/src/main/java/org/olat/repository/controllers/ReferencableEntriesSearchController.java
+++ b/src/main/java/org/olat/repository/controllers/ReferencableEntriesSearchController.java
@@ -204,13 +204,13 @@ public class ReferencableEntriesSearchController extends BasicController {
 
 	/**
 	 * Admin. search allow group managers to search all courses
-	 * @param limitTypes
+	 * @param limitingTypes
 	 * @param ureq
 	 * @return
 	 */
-	private boolean isAdminSearchVisible(String[] limitTypes, UserRequest ureq) {
+	private boolean isAdminSearchVisible(String[] limitingTypes, UserRequest ureq) {
 		Roles roles = ureq.getUserSession().getRoles();
-		return limitTypes != null && limitTypes.length == 1 && "CourseModule".equals(limitTypes[0])
+		return limitingTypes != null && limitingTypes.length == 1 && "CourseModule".equals(limitingTypes[0])
 				&& (roles.isOLATAdmin() ||
 						(roles.isInstitutionalResourceManager() && roles.isGroupManager()) ||
 						(roles.isGroupManager()
@@ -349,7 +349,7 @@ public class ReferencableEntriesSearchController extends BasicController {
 				// user selected entry to get a preview
 				selectedRepositoryEntry = searchCtr.getSelectedEntry();
 				RepositoryEntry repositoryEntry = searchCtr.getSelectedEntry();
-				RepositoryHandler typeToLaunch = RepositoryHandlerFactory.getInstance().getRepositoryHandler(repositoryEntry);
+				RepositoryHandler typeToLaunch = repositoryHandlerFactory.getRepositoryHandler(repositoryEntry);
 				if (typeToLaunch == null) {
 					StringBuilder sb = new StringBuilder(translate("error.launch"));
 					sb.append(": No launcher for repository entry: ");
diff --git a/src/main/java/org/olat/repository/manager/RepositoryEntryMyCourseQueries.java b/src/main/java/org/olat/repository/manager/RepositoryEntryMyCourseQueries.java
index 3c9e8f2e1e770ac0df4993b7bfc97c8abfe4eb6b..c8d4bbe49b1291bec979970030def7430fe928d7 100644
--- a/src/main/java/org/olat/repository/manager/RepositoryEntryMyCourseQueries.java
+++ b/src/main/java/org/olat/repository/manager/RepositoryEntryMyCourseQueries.java
@@ -350,6 +350,7 @@ public class RepositoryEntryMyCourseQueries {
 	
 	private void appendFiltersInWhereClause(Filter filter, StringBuilder sb) {
 		switch(filter) {
+			case showAll: break;
 			case currentCourses:
 				sb.append(" and lifecycle.validFrom<=:now and lifecycle.validTo>=:now");
 				break;
@@ -374,7 +375,7 @@ public class RepositoryEntryMyCourseQueries {
 				  .append("    where eff4.resource=res and eff4.identity=ident and eff4.passed is null")
 				  .append(" )");
 				break;
-			default: //do nothing
+			default: {}
 		}
 	}
 	
@@ -455,7 +456,12 @@ public class RepositoryEntryMyCourseQueries {
 					break;
 				case rating:
 					sb.append(" order by v.statistics.rating ");
-					appendAsc(sb, asc).append(" nulls last, lower(v.displayname) asc");
+					if(asc) {
+						sb.append(" asc nulls first");
+					} else {
+						sb.append(" desc nulls last");
+					}
+					sb.append(", lower(v.displayname) asc");
 					break;
 				case key:
 					sb.append(" order by v.key");
diff --git a/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java b/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java
index ba04ed1190b6dbb8008d3c01812b135ba76a0128..9a13d077a8dabd04fc7548e51aaa851861648120 100644
--- a/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java
+++ b/src/main/java/org/olat/repository/manager/RepositoryServiceImpl.java
@@ -97,6 +97,8 @@ public class RepositoryServiceImpl implements RepositoryService {
 	@Autowired
 	private RepositoryEntryAuthorQueries authorViewQueries;
 	@Autowired
+	private RepositoryHandlerFactory repositoryHandlerFactory;
+	@Autowired
 	private OLATResourceManager resourceManager;
 	@Autowired
 	private UserCourseInformationsManager userCourseInformationsManager;
@@ -209,7 +211,7 @@ public class RepositoryServiceImpl implements RepositoryService {
 
 	@Override
 	public VFSLeaf getIntroductionMovie(RepositoryEntry re) {
-		RepositoryHandler handler = RepositoryHandlerFactory.getInstance().getRepositoryHandler(re);
+		RepositoryHandler handler = repositoryHandlerFactory.getRepositoryHandler(re);
 		VFSContainer mediaContainer = handler.getMediaContainer(re);
 		if(mediaContainer != null) {
 			List<VFSItem> items = mediaContainer.getItems();
@@ -233,7 +235,7 @@ public class RepositoryServiceImpl implements RepositoryService {
 		if(debug) log.debug("deleteRepositoryEntry start entry=" + entry);
 		entry = (RepositoryEntry) dbInstance.loadObject(entry,true);
 		if(debug) log.debug("deleteRepositoryEntry after load entry=" + entry);
-		RepositoryHandler handler = RepositoryHandlerFactory.getInstance().getRepositoryHandler(entry);
+		RepositoryHandler handler = repositoryHandlerFactory.getRepositoryHandler(entry);
 		OLATResource resource = entry.getOlatResource();
 		//delete old context
 		if (!handler.readyToDelete(resource, identity, roles, locale, errors)) {
diff --git a/src/main/java/org/olat/repository/model/SearchMyRepositoryEntryViewParams.java b/src/main/java/org/olat/repository/model/SearchMyRepositoryEntryViewParams.java
index 4214c0b8dcd6cca72b8db898e7ec9a485a3c99c9..d8341ed51d02e6467fdf00a9f86db2ac3cce3587 100644
--- a/src/main/java/org/olat/repository/model/SearchMyRepositoryEntryViewParams.java
+++ b/src/main/java/org/olat/repository/model/SearchMyRepositoryEntryViewParams.java
@@ -200,6 +200,7 @@ public class SearchMyRepositoryEntryViewParams {
 	}
 	
 	public enum Filter {
+		showAll,
 		currentCourses,
 		oldCourses,
 		upcomingCourses,
diff --git a/src/main/java/org/olat/repository/portlet/RepositoryPortletRunController.java b/src/main/java/org/olat/repository/portlet/RepositoryPortletRunController.java
index a076aac1dfebe9157ca48fb029ca960cf6b39fad..630085a71f74530745965e2e7830b24349fa768b 100644
--- a/src/main/java/org/olat/repository/portlet/RepositoryPortletRunController.java
+++ b/src/main/java/org/olat/repository/portlet/RepositoryPortletRunController.java
@@ -114,10 +114,10 @@ public class RepositoryPortletRunController extends AbstractPortletRunController
 		putInitialPanel(repoEntriesVC);
 	}
 	
-	private List<RepositoryEntryLight> getAllEntries(SortingCriteria sortingCriteria) {
-		int maxResults = sortingCriteria == null ? -1 : sortingCriteria.getMaxEntries();
+	private List<RepositoryEntryLight> getAllEntries(SortingCriteria criteria) {
+		int maxResults = criteria == null ? -1 : criteria.getMaxEntries();
 		RepositoryEntryOrder orderBy = RepositoryEntryOrder.nameAsc;
-		if(sortingCriteria != null && !sortingCriteria.isAscending()) {
+		if(criteria != null && !criteria.isAscending()) {
 			orderBy = RepositoryEntryOrder.nameDesc;
 		}
 		
@@ -160,9 +160,9 @@ public class RepositoryPortletRunController extends AbstractPortletRunController
 	}
 
 	@Override
-	protected void reloadModel(SortingCriteria sortingCriteria) {
-		if (sortingCriteria.getSortingType() == SortingCriteria.AUTO_SORTING) {
-			List<RepositoryEntryLight> items = getAllEntries(sortingCriteria);
+	protected void reloadModel(SortingCriteria criteria) {
+		if (criteria.getSortingType() == SortingCriteria.AUTO_SORTING) {
+			List<RepositoryEntryLight> items = getAllEntries(criteria);
 			List<PortletEntry<RepositoryEntryLight>> entries = convertShortRepositoryEntriesToPortletEntryList(items);
 			repoEntryListModel = new RepositoryPortletTableDataModel(entries, getLocale());
 			tableCtr.setTableDataModel(repoEntryListModel);
@@ -262,18 +262,18 @@ public class RepositoryPortletRunController extends AbstractPortletRunController
 	 * Comparator implementation used for sorting BusinessGroup entries according with the
 	 * input sortingCriteria.
 	 * <p>
-	 * @param sortingCriteria
+	 * @param criteria
 	 * @return a Comparator for the input sortingCriteria
 	 */
 	@Override
-	protected Comparator<RepositoryEntryLight> getComparator(final SortingCriteria sortingCriteria) {
+	protected Comparator<RepositoryEntryLight> getComparator(final SortingCriteria criteria) {
 		return new Comparator<RepositoryEntryLight>(){			
 			public int compare(final RepositoryEntryLight repoEntry1, final RepositoryEntryLight repoEntry2) {
 				int comparisonResult = 0;
-			  if(sortingCriteria.getSortingTerm()==SortingCriteria.ALPHABETICAL_SORTING) {			  	
+			  if(criteria.getSortingTerm()==SortingCriteria.ALPHABETICAL_SORTING) {			  	
 			  	comparisonResult = collator.compare(repoEntry1.getDisplayname(), repoEntry2.getDisplayname());			  		  	
 			  }
-			  if(!sortingCriteria.isAscending()) {
+			  if(!criteria.isAscending()) {
 			  	//if not isAscending return (-comparisonResult)			  	
 			  	return -comparisonResult;
 			  }
diff --git a/src/main/java/org/olat/repository/ui/RepositoryTableModel.java b/src/main/java/org/olat/repository/ui/RepositoryTableModel.java
index 76c9476b5199ba1a7056334144050b609a4906bd..36b821e611c6a3434bc4a8304b354e8c8e2a5050 100644
--- a/src/main/java/org/olat/repository/ui/RepositoryTableModel.java
+++ b/src/main/java/org/olat/repository/ui/RepositoryTableModel.java
@@ -349,13 +349,12 @@ public class RepositoryTableModel extends DefaultTableDataModel<RepositoryEntry>
 	
 	public void addObject(RepositoryEntry object) {
 		getObjects().add(object);
-		List<RepositoryEntry> objects = Collections.singletonList(object);
-		secondaryInformations(objects);
+		secondaryInformations(Collections.singletonList(object));
 	}
 	
-	public void addObjects(List<RepositoryEntry> objects) {
-		getObjects().addAll(objects);
-		secondaryInformations(objects);
+	public void addObjects(List<RepositoryEntry> addedObjects) {
+		getObjects().addAll(addedObjects);
+		secondaryInformations(addedObjects);
 	}
 	
 	private void secondaryInformations(List<RepositoryEntry> repoEntries) {
diff --git a/src/main/java/org/olat/repository/ui/RepositoyUIFactory.java b/src/main/java/org/olat/repository/ui/RepositoyUIFactory.java
index 3e9c9c454c0c1d0058d4ea6c946b0962f5b426fb..1ee2ccf703c95ca126810f0c4787069b2d70b6ab 100644
--- a/src/main/java/org/olat/repository/ui/RepositoyUIFactory.java
+++ b/src/main/java/org/olat/repository/ui/RepositoyUIFactory.java
@@ -138,19 +138,19 @@ public class RepositoyUIFactory {
 		//wrap simple message into mainLayout
 		GenericMainController glc = new GenericMainController(ureq, wControl) {
 			@Override
-			public void init(UserRequest ureq) {
+			public void init(UserRequest uureq) {
 				Panel empty = new Panel("empty");			
-				setTranslator(Util.createPackageTranslator(this.getClass(), ureq.getLocale())); 
-				MessageController contentCtr = MessageUIFactory.createInfoMessage(ureq, getWindowControl(), translate("security.disabled.title"), translate("security.disabled.info"));
+				setTranslator(Util.createPackageTranslator(this.getClass(), uureq.getLocale())); 
+				MessageController contentCtr = MessageUIFactory.createInfoMessage(uureq, getWindowControl(), translate("security.disabled.title"), translate("security.disabled.info"));
 				listenTo(contentCtr); // auto dispose later
 				Component resComp = contentCtr.getInitialComponent();
-				LayoutMain3ColsController columnLayoutCtr = new LayoutMain3ColsController(ureq, getWindowControl(), empty, resComp, /*do not save no prefs*/null);
+				LayoutMain3ColsController columnLayoutCtr = new LayoutMain3ColsController(uureq, getWindowControl(), empty, resComp, /*do not save no prefs*/null);
 				listenTo(columnLayoutCtr); // auto dispose later
 				putInitialPanel(columnLayoutCtr.getInitialComponent());
 			}
 		
 			@Override
-			protected Controller handleOwnMenuTreeEvent(Object uobject, UserRequest ureq) {
+			protected Controller handleOwnMenuTreeEvent(Object uobject, UserRequest uureq) {
 				//no menutree means no menu events.
 				return null;
 			}
diff --git a/src/main/java/org/olat/repository/ui/author/AuthorListController.java b/src/main/java/org/olat/repository/ui/author/AuthorListController.java
index cb31b31c2bad33f1868c5085aa2ddf66d1948598..59146670c99d7b675c7d00c70c6f8d1702ddafbf 100644
--- a/src/main/java/org/olat/repository/ui/author/AuthorListController.java
+++ b/src/main/java/org/olat/repository/ui/author/AuthorListController.java
@@ -103,7 +103,7 @@ public class AuthorListController extends FormBasicController implements Activat
 	private FlexiTableElement tableEl;
 	private final TooledStackedPanel stackPanel;
 	
-	private boolean startExtendedSearch;
+	private boolean withSearch;;
 	
 	private AuthoringEntryDataModel model;
 	private AuthoringEntryDataSource dataSource;
@@ -131,39 +131,38 @@ public class AuthorListController extends FormBasicController implements Activat
 	private RepositoryHandlerFactory repositoryHandlerFactory;
 	
 	public AuthorListController(UserRequest ureq, WindowControl wControl, String i18nName,
-			SearchAuthorRepositoryEntryViewParams searchParams, boolean startExtendedSearch) {
+			SearchAuthorRepositoryEntryViewParams searchParams, boolean withSearch) {
 		super(ureq, wControl, "entries");
 		setTranslator(Util.createPackageTranslator(RepositoryManager.class, getLocale(), getTranslator()));
 
 		this.i18nName = i18nName;
+		this.withSearch = withSearch;
 		this.searchParams = searchParams;
-		this.startExtendedSearch = startExtendedSearch;
-		
-		importLink = LinkFactory.createLink("cmd.import.ressource", getTranslator(), this);
-		importLink.setDomReplacementWrapperRequired(false);
-		importLink.setIconLeftCSS("o_icon o_icon_import");
-		
-		Set<String> types = repositoryHandlerFactory.getSupportedTypes();
 
-		createDropdown = new Dropdown("cmd.create.ressource", "cmd.create.ressource", false, getTranslator());
-		createDropdown.setElementCssClass("o_sel_author_create");
-		createDropdown.setIconCSS("o_icon o_icon_add");
-		for(String type:types) {
-			RepositoryHandler handler = repositoryHandlerFactory.getRepositoryHandler(type);
-			if(handler != null && handler.isCreate()) {
-				addCreateLink(handler, createDropdown);
-			}
-		}
-		
 		dataSource = new AuthoringEntryDataSource(searchParams, this);
-
 		initForm(ureq);
 
 		stackPanel = new TooledStackedPanel(i18nName, getTranslator(), this);
 		stackPanel.setShowCloseLink(false);
 		stackPanel.pushController(translate(i18nName), this);
-		stackPanel.addTool(createDropdown, Align.left);
-		stackPanel.addTool(importLink, Align.left);
+		if(!withSearch) {
+			importLink = LinkFactory.createLink("cmd.import.ressource", getTranslator(), this);
+			importLink.setDomReplacementWrapperRequired(false);
+			importLink.setIconLeftCSS("o_icon o_icon_import");
+			stackPanel.addTool(importLink, Align.left);
+			
+			Set<String> types = repositoryHandlerFactory.getSupportedTypes();
+			createDropdown = new Dropdown("cmd.create.ressource", "cmd.create.ressource", false, getTranslator());
+			createDropdown.setElementCssClass("o_sel_author_create");
+			createDropdown.setIconCSS("o_icon o_icon_add");
+			for(String type:types) {
+				RepositoryHandler handler = repositoryHandlerFactory.getRepositoryHandler(type);
+				if(handler != null && handler.isCreate()) {
+					addCreateLink(handler, createDropdown);
+				}
+			}
+			stackPanel.addTool(createDropdown, Align.left);
+		}
 	}
 	
 	@Override
@@ -186,9 +185,12 @@ public class AuthorListController extends FormBasicController implements Activat
 	@Override
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
 		//search form
-		searchCtrl = new AuthorSearchController(ureq, getWindowControl(), !startExtendedSearch, mainForm);
-		searchCtrl.setEnabled(false);
-		listenTo(searchCtrl);
+		if(withSearch) {
+			setFormDescription("table.search.author.desc");
+			searchCtrl = new AuthorSearchController(ureq, getWindowControl(), true, mainForm);
+			searchCtrl.setEnabled(false);
+			listenTo(searchCtrl);
+		}
 		
 		//add the table
 		FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel();
@@ -226,21 +228,17 @@ public class AuthorListController extends FormBasicController implements Activat
 		
 		model = new AuthoringEntryDataModel(dataSource, columnsModel);
 		tableEl = uifactory.addTableElement(getWindowControl(), "table", model, 20, false, getTranslator(), formLayout);
-		tableEl.setSearchEnabled(true);
+		tableEl.setSearchEnabled(withSearch);
 		tableEl.setExportEnabled(true);
 		tableEl.setExtendedSearch(searchCtrl);
 		tableEl.setCustomizeColumns(true);
 		tableEl.setElementCssClass("o_coursetable");
 		tableEl.setMultiSelect(true);
+		tableEl.setEmtpyTableMessageKey("table.sEmptyTable");
 		tableEl.setSortSettings(new FlexiTableSortOptions(true, new SortKey(OrderBy.displayname.name(), true)));
 		tableEl.setAndLoadPersistedPreferences(ureq, "authors-list-" + i18nName);
-		if(!startExtendedSearch) {
+		if(!withSearch) {
 			tableEl.reloadData();
-		}
-		
-		if(startExtendedSearch) {
-			tableEl.expandExtendedSearch(ureq);
-		} else {
 			tableEl.setFilters(null, getFilters());
 		}
 		
@@ -251,7 +249,8 @@ public class AuthorListController extends FormBasicController implements Activat
 		Set<String> supportedTypes = repositoryHandlerFactory.getSupportedTypes();
 		List<FlexiTableFilter> resources = new ArrayList<>(supportedTypes.size() + 1);
 		for(String type:supportedTypes) {
-			resources.add(new FlexiTableFilter(translate(type), type));
+			String inconLeftCss = RepositoyUIFactory.getIconCssClass(type);
+			resources.add(new FlexiTableFilter(translate(type), type, inconLeftCss));
 		}
 		return resources;
 	}
diff --git a/src/main/java/org/olat/repository/ui/author/AuthoringEditEntrySettingsController.java b/src/main/java/org/olat/repository/ui/author/AuthoringEditEntrySettingsController.java
index da91a10245056e19cb328040b5805c2981a47540..47eb573c4d1a16d614397507dd686e5ad24e257d 100644
--- a/src/main/java/org/olat/repository/ui/author/AuthoringEditEntrySettingsController.java
+++ b/src/main/java/org/olat/repository/ui/author/AuthoringEditEntrySettingsController.java
@@ -51,6 +51,8 @@ public class AuthoringEditEntrySettingsController extends BasicController {
 	private RepositoryEntry entry;
 	@Autowired
 	private RepositoryService repositoryService;
+	@Autowired
+	private RepositoryHandlerFactory repositoryHandlerFactory;
 	
 	public AuthoringEditEntrySettingsController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel,
 			RepositoryEntryRef entryRef) {
@@ -68,7 +70,7 @@ public class AuthoringEditEntrySettingsController extends BasicController {
 		tabbedPane.addTab(translate("tab.public"), descriptionCtrl.getInitialComponent());
 		tabbedPane.addTab(translate("tab.accesscontrol"), accessCtrl.getInitialComponent());
 		
-		RepositoryHandler handler = RepositoryHandlerFactory.getInstance().getRepositoryHandler(entry);
+		RepositoryHandler handler = repositoryHandlerFactory.getRepositoryHandler(entry);
 		handler.addExtendedEditionControllers(ureq, getWindowControl(), this, entry);
 		
 		putInitialPanel(tabbedPane);
diff --git a/src/main/java/org/olat/repository/ui/author/AuthoringEntryDetailsController.java b/src/main/java/org/olat/repository/ui/author/AuthoringEntryDetailsController.java
index 84c804f2d2636c7b20a1c4f09826805c7e15fb54..d24122595a9796ed8c109acb2eacfb0c26a1d24d 100644
--- a/src/main/java/org/olat/repository/ui/author/AuthoringEntryDetailsController.java
+++ b/src/main/java/org/olat/repository/ui/author/AuthoringEntryDetailsController.java
@@ -334,7 +334,7 @@ public class AuthoringEntryDetailsController extends RepositoryEntryDetailsContr
 			String cssClass = RepositoyUIFactory.getIconCssClass(entry);
 			layoutCont.contextPut("cssClass", cssClass);
 			
-			RepositoryHandler handler = RepositoryHandlerFactory.getInstance().getRepositoryHandler(entry);
+			RepositoryHandler handler = repositoryHandlerFactory.getRepositoryHandler(entry);
 			VFSContainer mediaContainer = handler.getMediaContainer(entry);
 			if(mediaContainer != null) {
 				baseUrl = registerMapper(ureq, new VFSContainerMapper(mediaContainer.getParentContainer()));
@@ -452,8 +452,8 @@ public class AuthoringEntryDetailsController extends RepositoryEntryDetailsContr
 	public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) {
 		if(entries == null || entries.isEmpty()) return;
 		
-		ContextEntry entry = entries.get(0);
-		String segment = entry.getOLATResourceable().getResourceableTypeName();
+		ContextEntry contextEntry = entries.get(0);
+		String segment = contextEntry.getOLATResourceable().getResourceableTypeName();
 		if(EDIT_SETTINGS_ORES.getResourceableTypeName().equals(segment)) {
 			doEditSettings(ureq);
 		}
@@ -573,7 +573,7 @@ public class AuthoringEntryDetailsController extends RepositoryEntryDetailsContr
 		removeAsListenerAndDispose(cmc);
 		removeAsListenerAndDispose(wc);
 		
-		RepositoryHandler repoHandler = RepositoryHandlerFactory.getInstance().getRepositoryHandler(entry);
+		RepositoryHandler repoHandler = repositoryHandlerFactory.getRepositoryHandler(entry);
 		wc = repoHandler.createCloseResourceController(ureq, getWindowControl(), entry);
 		listenTo(wc);
 		wc.startWorkflow();
@@ -606,7 +606,7 @@ public class AuthoringEntryDetailsController extends RepositoryEntryDetailsContr
 	}
 	
 	private void doDownload(UserRequest ureq, boolean backwardsCompatible) {
-		RepositoryHandler typeToDownload = RepositoryHandlerFactory.getInstance().getRepositoryHandler(entry);
+		RepositoryHandler typeToDownload = repositoryHandlerFactory.getRepositoryHandler(entry);
 		if (typeToDownload == null) {
 			StringBuilder sb = new StringBuilder(translate("error.download"));
 			sb.append(": No download handler for repository entry: ")
diff --git a/src/main/java/org/olat/repository/ui/author/AuthoringEntryPublishController.java b/src/main/java/org/olat/repository/ui/author/AuthoringEntryPublishController.java
index 016a23c46e42cb4f9a1346f951780d3ca3d0f0c4..2fbfa9c83b138e5b22ad5902d118456f3486960a 100644
--- a/src/main/java/org/olat/repository/ui/author/AuthoringEntryPublishController.java
+++ b/src/main/java/org/olat/repository/ui/author/AuthoringEntryPublishController.java
@@ -183,15 +183,14 @@ public class AuthoringEntryPublishController extends FormBasicController {
 		setFormTitle("rentry.publish");
 		setFormContextHelp("org.olat.repository", "rep-meta-olatauthorEd.html", "help.hover.rep.detail");
 
-
-		String type = entry.getOlatResource().getResourceableTypeName();
-		if (TestFileResource.TYPE_NAME.equals(type)
-			|| SurveyFileResource.TYPE_NAME.equals(type)
-			|| ScormCPFileResource.TYPE_NAME.equals(type)) {
+		String resourceType = entry.getOlatResource().getResourceableTypeName();
+		if (TestFileResource.TYPE_NAME.equals(resourceType)
+			|| SurveyFileResource.TYPE_NAME.equals(resourceType)
+			|| ScormCPFileResource.TYPE_NAME.equals(resourceType)) {
 			String warning = translate("warn.resource.need.course");
 			flc.contextPut("off_warn", warning);
 		}
-		if (CourseModule.ORES_TYPE_COURSE.equals(type)) {
+		if (CourseModule.ORES_TYPE_COURSE.equals(resourceType)) {
 			setFormDescription("rentry.publish.course.desc");			
 		} else {
 			setFormDescription("rentry.publish.other.desc");			
diff --git a/src/main/java/org/olat/repository/ui/author/CatalogSettingsController.java b/src/main/java/org/olat/repository/ui/author/CatalogSettingsController.java
index cad3eb5f56b16b6f81400c5f5e1ba4f156da4654..4fae0a49d84608934e81dbfa86e5b0198c7f9c96 100644
--- a/src/main/java/org/olat/repository/ui/author/CatalogSettingsController.java
+++ b/src/main/java/org/olat/repository/ui/author/CatalogSettingsController.java
@@ -203,11 +203,11 @@ class CatalogSettingsController extends FormBasicController {
 
 		@Override
 		public Object getValueAt(int row, int col) {
-			CatalogEntry entry = getObject(row);
+			CatalogEntry catEntry = getObject(row);
 			if(col == 0) {
 				// calculate cat entry path: travel up to the root node
 				String path = "";
-				CatalogEntry tempEntry = entry;
+				CatalogEntry tempEntry = catEntry;
 				while (tempEntry != null) {
 					path = "/" + tempEntry.getName() + path;
 					tempEntry = tempEntry.getParent();
diff --git a/src/main/java/org/olat/repository/ui/author/RepositoryMembersController.java b/src/main/java/org/olat/repository/ui/author/RepositoryMembersController.java
index 300c0b53da9c27c57b75b6992a0d3843184dee53..22bac20bdfe6ebc9ef90e03c83a33e30d446a84a 100644
--- a/src/main/java/org/olat/repository/ui/author/RepositoryMembersController.java
+++ b/src/main/java/org/olat/repository/ui/author/RepositoryMembersController.java
@@ -124,8 +124,8 @@ public class RepositoryMembersController extends AbstractMemberListController {
 		Step start = new ImportMember_1b_ChooseMemberStep(ureq, repoEntry, null);
 		StepRunnerCallback finish = new StepRunnerCallback() {
 			@Override
-			public Step execute(UserRequest ureq, WindowControl wControl, StepsRunContext runContext) {
-				addMembers(ureq, runContext);
+			public Step execute(UserRequest uureq, WindowControl wControl, StepsRunContext runContext) {
+				addMembers(uureq, runContext);
 				return StepsMainRunController.DONE_MODIFIED;
 			}
 		};
@@ -142,8 +142,8 @@ public class RepositoryMembersController extends AbstractMemberListController {
 		Step start = new ImportMember_1a_LoginListStep(ureq, repoEntry, null);
 		StepRunnerCallback finish = new StepRunnerCallback() {
 			@Override
-			public Step execute(UserRequest ureq, WindowControl wControl, StepsRunContext runContext) {
-				addMembers(ureq, runContext);
+			public Step execute(UserRequest uureq, WindowControl wControl, StepsRunContext runContext) {
+				addMembers(uureq, runContext);
 				if(runContext.containsKey("notFounds")) {
 					showWarning("user.notfound", runContext.get("notFounds").toString());
 				}
diff --git a/src/main/java/org/olat/repository/ui/author/_content/entries.html b/src/main/java/org/olat/repository/ui/author/_content/entries.html
index ed974d3d382ac4ed971a9a55d323c8499e11aa9e..29acec80e60dc1afac2282fd443d0ec0414ade68 100644
--- a/src/main/java/org/olat/repository/ui/author/_content/entries.html
+++ b/src/main/java/org/olat/repository/ui/author/_content/entries.html
@@ -1,3 +1,6 @@
+#if ($off_desc )
+	<div class="o_info">$off_desc</div>
+#end
 $r.render("table")
 <div class="o_buttons_box_center clearfix">
 	#if($r.available("tools.add.owners"))
diff --git a/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java b/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java
index fde0c342f165db50ed52d8ebec986551bbb21c2a..40aa575837409388ddaa89e00dee470c1fd325ce 100644
--- a/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java
+++ b/src/main/java/org/olat/repository/ui/list/RepositoryEntryListController.java
@@ -87,7 +87,7 @@ public class RepositoryEntryListController extends FormBasicController
 	private final List<Link> filterLinks = new ArrayList<>();
 	private final List<Link> orderByLinks = new ArrayList<>();
 	
-	private boolean startExtendedSearch;
+	private boolean withSearch;
 
 	private final String name;
 	private FlexiTableElement tableEl;
@@ -113,13 +113,13 @@ public class RepositoryEntryListController extends FormBasicController
 	
 	public RepositoryEntryListController(UserRequest ureq, WindowControl wControl,
 			SearchMyRepositoryEntryViewParams searchParams, boolean load, 
-			boolean startExtendedSearch, String name, BreadcrumbPanel stackPanel) {
+			boolean withSearch, String name, BreadcrumbPanel stackPanel) {
 		super(ureq, wControl, "repoentry_table");
 		setTranslator(Util.createPackageTranslator(RepositoryManager.class, getLocale(), getTranslator()));
 		mapperThumbnailUrl = mapperService.register(null, "repositoryentryImage", new RepositoryEntryImageMapper());
 		this.name = name;
 		this.stackPanel = stackPanel;
-		this.startExtendedSearch = startExtendedSearch;
+		this.withSearch = withSearch;
 		guestOnly = ureq.getUserSession().getRoles().isGuestOnly();
 		
 		this.searchParams = searchParams;
@@ -137,9 +137,12 @@ public class RepositoryEntryListController extends FormBasicController
 
 	@Override
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
-		searchCtrl = new RepositoryEntrySearchController(ureq, getWindowControl(), !startExtendedSearch, mainForm);
-		searchCtrl.setEnabled(false);
-		listenTo(searchCtrl);
+		if(withSearch) {
+			setFormDescription("table.search.mycourses.desc");
+			searchCtrl = new RepositoryEntrySearchController(ureq, getWindowControl(), true, mainForm);
+			searchCtrl.setEnabled(false);
+			listenTo(searchCtrl);
+		}
 
 		FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel();
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false, Cols.key.i18nKey(), Cols.key.ordinal(), true, OrderBy.key.name()));
@@ -159,14 +162,15 @@ public class RepositoryEntryListController extends FormBasicController
 				true, OrderBy.lifecycleEnd.name(), FlexiColumnModel.ALIGNMENT_LEFT, new DateFlexiCellRenderer(getLocale())));
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(false,Cols.details.i18nKey(), Cols.details.ordinal(), false, null));
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.start.i18nKey(), Cols.start.ordinal()));
-		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.ratings.i18nKey(), Cols.ratings.ordinal()));
+		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.ratings.i18nKey(), Cols.ratings.ordinal(),
+				true, OrderBy.rating.name()));
 		columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(Cols.comments.i18nKey(), Cols.comments.ordinal()));
 
 		model = new RepositoryEntryDataModel(dataSource, columnsModel);
 		tableEl = uifactory.addTableElement(getWindowControl(), "table", model, 20, false, getTranslator(), formLayout);
 		tableEl.setAvailableRendererTypes(FlexiTableRendererType.custom, FlexiTableRendererType.classic);
 		tableEl.setRendererType(FlexiTableRendererType.custom);
-		tableEl.setSearchEnabled(true);
+		tableEl.setSearchEnabled(withSearch);
 		tableEl.setExtendedSearch(searchCtrl);
 		tableEl.setCustomizeColumns(true);
 		tableEl.setElementCssClass("o_coursetable");
@@ -179,14 +183,12 @@ public class RepositoryEntryListController extends FormBasicController
 		initSorters(tableEl);
 		
 		tableEl.setAndLoadPersistedPreferences(ureq, "re-list-" + name);
-		
-		if(startExtendedSearch) {
-			tableEl.expandExtendedSearch(ureq);
-		}
 	}
 	
 	private void initFilters(FlexiTableElement tableElement) {
-		List<FlexiTableFilter> filters = new ArrayList<>(14);
+		List<FlexiTableFilter> filters = new ArrayList<>(16);
+		filters.add(new FlexiTableFilter(translate("filter.show.all"), Filter.showAll.name()));
+		filters.add(FlexiTableFilter.SPACER);
 		filters.add(new FlexiTableFilter(translate("filter.current.courses"), Filter.currentCourses.name()));
 		filters.add(new FlexiTableFilter(translate("filter.upcoming.courses"), Filter.upcomingCourses.name()));
 		filters.add(new FlexiTableFilter(translate("filter.old.courses"), Filter.oldCourses.name()));
diff --git a/src/main/java/org/olat/repository/ui/list/_content/repoentry_table.html b/src/main/java/org/olat/repository/ui/list/_content/repoentry_table.html
index bade9402acda206e8171adcb2d85adb1b884ea54..86a7780fcfb14c1037d6e2fe03f610fa1341c8fd 100644
--- a/src/main/java/org/olat/repository/ui/list/_content/repoentry_table.html
+++ b/src/main/java/org/olat/repository/ui/list/_content/repoentry_table.html
@@ -1 +1,4 @@
+#if ($off_desc )
+	<div class="o_info">$off_desc</div>
+#end
 $r.render("table")
\ No newline at end of file
diff --git a/src/test/java/org/olat/repository/RepositoryManagerTest.java b/src/test/java/org/olat/repository/RepositoryManagerTest.java
index 8ed3a1c0f18138148c4d8f75f41ba8d27183f7ea..34f53968d450affc3096fdd4422685f44d781f4f 100644
--- a/src/test/java/org/olat/repository/RepositoryManagerTest.java
+++ b/src/test/java/org/olat/repository/RepositoryManagerTest.java
@@ -251,6 +251,18 @@ public class RepositoryManagerTest extends OlatTestCase {
 		Assert.assertTrue(entries.contains(re));
 	}
 	
+	@Test
+	public void queryByInitialAuthor() {
+		String initialAuthor = UUID.randomUUID().toString();
+		RepositoryEntry re = JunitTestHelper.createAndPersistRepositoryEntry(initialAuthor, false);
+		dbInstance.commitAndCloseSession();
+
+		List<RepositoryEntry> reList = repositoryManager.queryByInitialAuthor(initialAuthor);
+		Assert.assertNotNull(reList);
+		Assert.assertEquals(1, reList.size());
+		Assert.assertEquals(re, reList.get(0));
+	}
+	
 	@Test
 	public void getLearningResourcesAsStudent() {
 		Identity id = JunitTestHelper.createAndPersistIdentityAsUser("re-stud-la-" + UUID.randomUUID().toString());
diff --git a/src/test/java/org/olat/test/JunitTestHelper.java b/src/test/java/org/olat/test/JunitTestHelper.java
index f5c05615e2183ffafabe779af4733f1e21d1b61f..48c3101a6f262368ebf3c45d2161aa47128d1ccb 100644
--- a/src/test/java/org/olat/test/JunitTestHelper.java
+++ b/src/test/java/org/olat/test/JunitTestHelper.java
@@ -170,17 +170,21 @@ public class JunitTestHelper {
 	}
 	
 	public static final RepositoryEntry createAndPersistRepositoryEntry(boolean membersOnly) {
+		return createAndPersistRepositoryEntry("Florian Gnägi", membersOnly);
+	}
+	
+	public static final RepositoryEntry createAndPersistRepositoryEntry(String initialAuthor, boolean membersOnly) {
 		OLATResourceManager resourceManager = OLATResourceManager.getInstance();
 		String resourceName = UUID.randomUUID().toString().replace("-", "").substring(0, 30);
 		OLATResourceable ores = OresHelper.createOLATResourceableInstance(resourceName, CodeHelper.getForeverUniqueID());
 		OLATResource r =  resourceManager.createOLATResourceInstance(ores);
 		resourceManager.saveOLATResource(r);
-		return createAndPersistRepositoryEntry(r, membersOnly);
+		return createAndPersistRepositoryEntry(initialAuthor, r, membersOnly);
 	}
 	
-	public static final RepositoryEntry createAndPersistRepositoryEntry(OLATResource r, boolean membersOnly) {
+	private static final RepositoryEntry createAndPersistRepositoryEntry(String initialAuthor, OLATResource r, boolean membersOnly) {
 		RepositoryService repositoryService = CoreSpringFactory.getImpl(RepositoryService.class);
-		RepositoryEntry re = repositoryService.create("Florian Gnägi", "Lernen mit OLAT", r.getResourceableTypeName(), null, r);
+		RepositoryEntry re = repositoryService.create(initialAuthor, "Lernen mit OLAT", r.getResourceableTypeName(), null, r);
 		if(membersOnly) {
 			re.setAccess(RepositoryEntry.ACC_OWNERS);
 			re.setMembersOnly(true);