diff --git a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/exporter/ExportExecutor.java b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/exporter/ExportExecutor.java
index 74980e16d6caec50006f30bc3920a334b218aef6..27e59270377ae2e112f6255e4805e63211f398e9 100644
--- a/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/exporter/ExportExecutor.java
+++ b/server-application-server/source/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/exporter/ExportExecutor.java
@@ -777,7 +777,8 @@ public class ExportExecutor implements IExportExecutor
             final String sampleCode, final String sampleName, final String dataSetCode, final String extension)
             throws IOException
     {
-        final String entry = getNextDocZipEntry(spaceCode, projectCode, experimentCode, experimentName, sampleCode, sampleName, dataSetCode, extension);
+        final String entry = getNextDocZipEntry(spaceCode, projectCode, experimentCode, experimentName, sampleCode, sampleName, dataSetCode,
+                extension);
         if (!existingZipEntries.contains(entry))
         {
             zos.putNextEntry(new ZipEntry(entry));
@@ -790,7 +791,7 @@ public class ExportExecutor implements IExportExecutor
     {
         final StringBuilder entryBuilder = new StringBuilder(PDF_DIRECTORY);
 
-        if (spaceCode == null && (projectCode != null || experimentCode != null || sampleCode != null || dataSetCode != null || extension != null))
+        if (spaceCode == null && (projectCode != null || experimentCode != null || dataSetCode != null || (sampleCode == null && extension != null)))
         {
             throw new IllegalArgumentException();
         } else if (spaceCode != null)
diff --git a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/exporter/ExportExecutorTest.java b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/exporter/ExportExecutorTest.java
index 91c7eff9a0c4f5abc486ba4b4f96329ee6b94e81..635ac6d2f2026c1a48db3e76530e5103cc8c5cf6 100644
--- a/server-application-server/sourceTest/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/exporter/ExportExecutorTest.java
+++ b/server-application-server/sourceTest/java/ch/ethz/sis/openbis/generic/server/asapi/v3/executor/exporter/ExportExecutorTest.java
@@ -181,6 +181,22 @@ public class ExportExecutorTest
                     String.format("%s/%s/%s/%s (%s)/%s (%s)/%s%s", PDF_DIRECTORY, SPACE_CODE, PROJECT_CODE, EXPERIMENT_NAME, EXPERIMENT_CODE,
                             SAMPLE_NAME, SAMPLE_CODE, DATA_SET_CODE, EXTENSION)
             },
+            {
+                    null, null, null, null, SAMPLE_CODE, null, null, null,
+                    String.format("%s/%s/", PDF_DIRECTORY, SAMPLE_CODE)
+            },
+            {
+                    null, null, null, null, SAMPLE_CODE, SAMPLE_NAME, null, null,
+                    String.format("%s/%s (%s)/", PDF_DIRECTORY, SAMPLE_NAME, SAMPLE_CODE)
+            },
+            {
+                    null, null, null, null, SAMPLE_CODE, null, null, EXTENSION,
+                    String.format("%s/%s%s", PDF_DIRECTORY, SAMPLE_CODE, EXTENSION)
+            },
+            {
+                    null, null, null, null, SAMPLE_CODE, SAMPLE_NAME, null, EXTENSION,
+                    String.format("%s/%s (%s)%s", PDF_DIRECTORY, SAMPLE_NAME, SAMPLE_CODE, EXTENSION)
+            },
     };
 
     private static final Object[][] ERRONEOUS_NEXT_ZIP_ENTRY_DATA = {
@@ -190,15 +206,15 @@ public class ExportExecutorTest
             {
                     null, null, EXPERIMENT_CODE, null, null, null, null, null
             },
-            {
-                    null, null, null, null, SAMPLE_CODE, null, null, null
-            },
             {
                     null, null, null, null, null, null, DATA_SET_CODE, null
             },
             {
                     null, null, null, null, null, null, null, EXTENSION
             },
+            {
+                    null, PROJECT_CODE, EXPERIMENT_CODE, null, SAMPLE_CODE, null, DATA_SET_CODE, null
+            },
             {
                     null, PROJECT_CODE, EXPERIMENT_CODE, EXPERIMENT_NAME, SAMPLE_CODE, SAMPLE_NAME, DATA_SET_CODE, EXTENSION
             },
@@ -208,9 +224,15 @@ public class ExportExecutorTest
             {
                     SPACE_CODE, null, null, null, null, null, DATA_SET_CODE, EXTENSION
             },
+            {
+                    SPACE_CODE, null, null, null, null, null, DATA_SET_CODE, null
+            },
             {
                     SPACE_CODE, PROJECT_CODE, null, null, null, null, DATA_SET_CODE, EXTENSION
             },
+            {
+                    SPACE_CODE, PROJECT_CODE, null, null, null, null, DATA_SET_CODE, null
+            },
     };
 
     private static final Object[][] FOLDER_NAME_DATA = {