diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExperimentTableTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExperimentTableTest.java
index 70ad331c272d511fe2520c42d93c37eeb3f76f88..1d1c633b5b04dee27cae1fa43f072dc11ae36189 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExperimentTableTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/business/bo/ExperimentTableTest.java
@@ -23,6 +23,7 @@ import org.jmock.Expectations;
 import org.testng.annotations.Test;
 
 import ch.rinn.restrictions.Friend;
+import ch.systemsx.cisd.common.exceptions.UserFailureException;
 import ch.systemsx.cisd.openbis.generic.server.business.ManagerTestTool;
 import ch.systemsx.cisd.openbis.generic.shared.CommonTestUtils;
 import ch.systemsx.cisd.openbis.generic.shared.dto.DatabaseInstancePE;
@@ -57,6 +58,9 @@ public final class ExperimentTableTest extends AbstractBOTest
         context.checking(new Expectations()
             {
                 {
+                    allowing(daoFactory).getHomeDatabaseInstance();
+                    will(returnValue(CommonTestUtils.createHomeDatabaseInstance()));
+
                     allowing(daoFactory).getEntityTypeDAO(EntityKind.EXPERIMENT);
                     will(returnValue(entityTypeDAO));
 
@@ -81,6 +85,42 @@ public final class ExperimentTableTest extends AbstractBOTest
         context.assertIsSatisfied();
     }
 
+    @Test
+    public void testLoadByProjectNonexistent() throws Exception
+    {
+        final ProjectIdentifier projectIdentifier = CommonTestUtils.createProjectIdentifier();
+        final ExperimentTypePE experimentType = CommonTestUtils.createExperimentType();
+        context.checking(new Expectations()
+            {
+                {
+                    allowing(daoFactory).getHomeDatabaseInstance();
+                    will(returnValue(CommonTestUtils.createHomeDatabaseInstance()));
+
+                    allowing(daoFactory).getEntityTypeDAO(EntityKind.EXPERIMENT);
+                    will(returnValue(entityTypeDAO));
+
+                    allowing(daoFactory).getProjectDAO();
+                    will(returnValue(projectDAO));
+
+                    allowing(daoFactory).getExperimentDAO();
+                    will(returnValue(experimentDAO));
+
+                    one(projectDAO).tryFindProjects(Collections.singletonList(projectIdentifier));
+                    will(returnValue(Collections.emptyList()));
+                }
+            });
+
+        try
+        {
+            createExperimentTable().load(experimentType.getCode(), projectIdentifier);
+            fail();
+        } catch (UserFailureException e)
+        {
+            context.assertIsSatisfied();
+            assertEquals("Projects '[HOME_DATABASE:/HOME_GROUP/PROJECT_EVOLUTION]' unknown.", e.getMessage());
+        }
+    }
+
     @Test
     public void testLoadBySpace() throws Exception
     {
diff --git a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ProjectDAOTest.java b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ProjectDAOTest.java
index 0469e9e2cd0107e7c992bce259714d6c4e3e1661..3273358581c9417e9d23a22ed9df25afac3ef323 100644
--- a/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ProjectDAOTest.java
+++ b/openbis/sourceTest/java/ch/systemsx/cisd/openbis/generic/server/dataaccess/db/ProjectDAOTest.java
@@ -22,6 +22,7 @@ import static org.testng.AssertJUnit.assertNotNull;
 import static org.testng.AssertJUnit.assertNull;
 import static org.testng.AssertJUnit.assertTrue;
 
+import java.util.Arrays;
 import java.util.Collections;
 import java.util.List;
 
@@ -34,6 +35,8 @@ import ch.systemsx.cisd.openbis.generic.shared.basic.TechId;
 import ch.systemsx.cisd.openbis.generic.shared.dto.PersonPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.ProjectPE;
 import ch.systemsx.cisd.openbis.generic.shared.dto.SpacePE;
+import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.IdentifierHelper;
+import ch.systemsx.cisd.openbis.generic.shared.dto.identifier.ProjectIdentifier;
 import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils;
 
 /**
@@ -42,7 +45,7 @@ import ch.systemsx.cisd.openbis.generic.shared.util.HibernateUtils;
  * @author Izabela Adamczyk
  */
 @Test(groups =
-    { "db", "project" })
+{ "db", "project" })
 public class ProjectDAOTest extends AbstractDAOTest
 {
 
@@ -61,7 +64,7 @@ public class ProjectDAOTest extends AbstractDAOTest
     public static final String DEFAULT = "DEFAULT";
 
     static final String[] PRELOADED_PROJECTS =
-        { DEFAULT, NEMO, NOE, TEST_PROJECT, TESTPROJ };
+    { DEFAULT, NEMO, NOE, TEST_PROJECT, TESTPROJ };
 
     @Test
     public void testListProjects()
@@ -144,6 +147,45 @@ public class ProjectDAOTest extends AbstractDAOTest
                 templateProject.getSpace().getCode(), templateProject.getCode()));
     }
 
+    @Test
+    public void testTryFindProjects() throws Exception
+    {
+        final List<ProjectPE> allProjects = daoFactory.getProjectDAO().listProjects();
+        Collections.sort(allProjects);
+
+        final ProjectPE noe = allProjects.get(2);
+        final ProjectPE testproj = allProjects.get(4);
+
+        assertEquals(noe.getCode(), NOE);
+        assertEquals(testproj.getCode(), TESTPROJ);
+
+        List<ProjectPE> found = daoFactory.getProjectDAO().tryFindProjects(
+                Arrays.asList(IdentifierHelper.createProjectIdentifier(noe), IdentifierHelper.createFullProjectIdentifier(testproj)));
+
+        Collections.sort(found);
+
+        assertEquals(2, found.size());
+        assertEquals(noe.getCode(), found.get(0).getCode());
+        assertEquals(testproj.getCode(), found.get(1).getCode());
+    }
+
+    @Test
+    public void testTryFindProjectsNonexistent() throws Exception
+    {
+        final List<ProjectPE> allProjects = daoFactory.getProjectDAO().listProjects();
+        Collections.sort(allProjects);
+
+        final ProjectPE noe = allProjects.get(2);
+
+        assertEquals(noe.getCode(), NOE);
+
+        List<ProjectPE> found = daoFactory.getProjectDAO().tryFindProjects(
+                Arrays.asList(IdentifierHelper.createProjectIdentifier(noe), new ProjectIdentifier(NONEXISTENT, NONEXISTENT, NONEXISTENT)));
+
+        assertEquals(1, found.size());
+        assertEquals(noe.getCode(), found.get(0).getCode());
+    }
+
     @Test
     public void testTryGetByPermID() throws Exception
     {