                      p_reduction_nbr;
          END IF;
       EXCEPTION
-         WHEN NO_DATA_FOUND
-         THEN
+         WHEN NO_DATA_FOUND THEN
             raise_application_error (
                -20010,
                'No records found which match the critieria');
-         WHEN OTHERS
-         THEN
+         WHEN USER_CANCEL THEN
+            RAISE;
+         WHEN OTHERS THEN
             opr$oracle.global_utils.v_program :=
                'CHAN_ARCH_SNS.archive_reader_pkg.get_browser_data-Browser data cursor';
             opr$oracle.global_utils.v_errornum := SQLCODE;
             opr$oracle.global_utils.v_errortxt := SUBSTR (SQLERRM, 1, 200);
-            opr$oracle.global_utils.log_error (
-               opr$oracle.global_utils.v_program,
-               opr$oracle.global_utils.v_errornum,
-               opr$oracle.global_utils.v_errortxt);
+            opr$oracle.global_utils.
+             log_error (opr$oracle.global_utils.v_program,
+                        opr$oracle.global_utils.v_errornum,
+                        opr$oracle.global_utils.v_errortxt);
             RAISE;
       END;
 
       RETURN c_browser_data;
    EXCEPTION
-      WHEN OTHERS
-      THEN
+      WHEN USER_CANCEL THEN
+         RAISE;
+      WHEN OTHERS THEN
          opr$oracle.global_utils.v_program :=
             'CHAN_ARCH_SNS.archive_reader_pkg.get_browser_data';
          opr$oracle.global_utils.v_errornum := SQLCODE;
          opr$oracle.global_utils.v_errortxt := SUBSTR (SQLERRM, 1, 200);
-         opr$oracle.global_utils.log_error (
-            opr$oracle.global_utils.v_program,
-            opr$oracle.global_utils.v_errornum,
-            opr$oracle.global_utils.v_errortxt);
+         opr$oracle.global_utils.
+          log_error (opr$oracle.global_utils.v_program,
+                     opr$oracle.global_utils.v_errornum,
+                     opr$oracle.global_utils.v_errortxt);
          RAISE;
    END get_browser_data;
 

            INTO v_count
            USING p_chan_id, p_start_time, p_end_time;
      EXCEPTION
         WHEN OTHERS
         THEN
            opr$oracle.global_utils.v_program :=
               'CHAN_ARCH_SNS.archive_reader_pkg.get_count_by_date_range';
            opr$oracle.global_utils.v_errornum := SQLCODE;
            opr$oracle.global_utils.v_errortxt := SUBSTR (SQLERRM, 1, 200);
            opr$oracle.global_utils.log_error (
               opr$oracle.global_utils.v_program,
               opr$oracle.global_utils.v_errornum,
               opr$oracle.global_utils.v_errortxt);
            RAISE;
      END;


            INTO l_count
            USING p_chan_id, p_start_time, p_end_time;
      EXCEPTION
         WHEN USER_CANCEL THEN
            RAISE;
         WHEN OTHERS THEN
            opr$oracle.global_utils.v_program :=
               'CHAN_ARCH_SNS.archive_reader_pkg.is_sample_array';
            opr$oracle.global_utils.v_errornum := SQLCODE;
            opr$oracle.global_utils.v_errortxt := SUBSTR (SQLERRM, 1, 200);
            opr$oracle.global_utils.
             log_error (opr$oracle.global_utils.v_program,
                        opr$oracle.global_utils.v_errornum,
                        opr$oracle.global_utils.v_errortxt);
            RAISE;
      END;

      IF l_count > 0 THEN
         RETURN TRUE;
      ELSE
         RETURN FALSE;
      END IF;
   END is_sample_array;
END archive_reader_pkg;