<html>
  <head>
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    <br>
    <br>
    <div class="moz-cite-prefix">On 9/22/2016 10:59 PM, Philip Race
      wrote:<br>
    </div>
    <blockquote cite="mid:57E414F2.6090202@oracle.com" type="cite">
      <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
      Your comment refers only  (and explicitly) to the print dialog :-<br>
      <meta http-equiv="content-type" content="text/html; charset=utf-8">
      <pre>1484          * printing Banner page through print dialog via setAttributes().</pre>
      So if we get into that code afterwards why do we need this new
      code ?<br>
      <br>
    </blockquote>
    The new code is needed because if we have null attributes, then
    setAttributes() will return <br>
    <pre>1177         if (attributes == null  || service == null) {
1178             return;
1179         }</pre>
    even before it reaches<br>
    <br>
    1271         JobSheets jobSheets =
    (JobSheets)attributes.get(JobSheets.class); <br>
    1272         if (jobSheets != null) { <br>
    1273             noJobSheet = jobSheets == JobSheets.NONE; <br>
    1274         } else { <br>
    1275             JobSheets js = (JobSheets)getPrintService(). <br>
    1276 getDefaultAttributeValue(JobSheets.class); <br>
    1277             if (js != null &&
    js.equals(JobSheets.NONE)) { <br>
    1278                 noJobSheet = true; <br>
    1279             } <br>
    1280         } <br>
    <br>
    Regards<br>
    Prasanta<br>
    <blockquote cite="mid:57E414F2.6090202@oracle.com" type="cite"> I do
      see that call to setAttributes() but I am assuming it does not<br>
      get in there, else why does it not work already for this case?<br>
      It looks identical to your new code.<br>
      <br>
      Put another way I don't see how the bug even manifests if it works
      as you describe.<br>
      <br>
      -phil.<br>
      <br>
      On 9/22/16, 10:10 AM, Prasanta Sadhukhan wrote:
      <blockquote cite="mid:57E41089.1020803@oracle.com" type="cite">That's

        why I call the new code before setAttributes() so that user's
        selection is not overridden. I put a comment regarding that in
        the fix. <br>
        <br>
        Regards <br>
        Prasanta <br>
        On 9/22/2016 10:38 PM, Philip Race wrote: <br>
        <blockquote type="cite">What happens if the application does not
          display a dialog but <br>
          instead the application code explicitly does this: <br>
          <br>
          aset.add(JobSheets.STANDARD); <br>
          print(aset) <br>
          <br>
          ? <br>
          <br>
          It appears to me you will over-ride that. <br>
          <br>
          -phil. <br>
          <br>
          On 9/22/16, 9:54 AM, Prasanta Sadhukhan wrote: <br>
          <blockquote type="cite">Hi Phil, <br>
            <br>
            My new code takes care of the problem when attribute is not
            set by the user who directly calls PrinterJob.print(). If no
            print dialog is shown, then print(attr) seems to be called
            with Null attribute <br>
            and since noJobSheet was false, it used to print the banner
            page. <br>
            I now checked only the
            PrintService.getDefaultAttributeValue(JobSheets.class) and
            if IPP returns "none",  I change the default noJobSheet to
            true so that no banner page is printed (to honor system
            default). <br>
            <br>
            Regards <br>
            Prasanta <br>
            On 9/22/2016 10:16 PM, Philip Race wrote: <br>
            <blockquote type="cite">This looks wrong to me. Shouldn't
              the logic look like the one you have earlier in <br>
              the file ? ie this : <br>
              <br>
              1271         JobSheets jobSheets =
              (JobSheets)attributes.get(JobSheets.class); <br>
              1272         if (jobSheets != null) { <br>
              1273             noJobSheet = jobSheets == JobSheets.NONE;
              <br>
              1274         } else { <br>
              1275             JobSheets js =
              (JobSheets)getPrintService(). <br>
              1276 getDefaultAttributeValue(JobSheets.class); <br>
              1277             if (js != null &&
              js.equals(JobSheets.NONE)) { <br>
              1278                 noJobSheet = true; <br>
              1279             } <br>
              1280         } <br>
              <br>
              As it is your new code seems to completely disregard any
              setting by <br>
              the application in the attribute set - which *does not*
              have anything to do with <br>
              whether a dialog was set. <br>
              <br>
              Also I reject that this can be a TCK failure. <br>
              "I got a banner page" is something that can be a system
              configuration <br>
              parameter and is wholly outside anything JCK can (or
              should) care about. <br>
              You could fix this but it could then behave the same on a
              different system. <br>
              In fact my reading of the bug is simply that they noticed
              this when running <br>
              a TCK test. That does not make it a TCK failure. <br>
              I have removed the tck labels from the bug and JCK can
              argue with me if they want to .. <br>
              <br>
              -phil. <br>
              <br>
              On 9/16/16, 3:21 AM, Prasanta Sadhukhan wrote: <br>
              <blockquote type="cite">Hi All, <br>
                <br>
                Please review a fix for a tck failure in jdk9 whereby
                "banner page" (cover page) is printed by default when
                print() is called directly without any print dialog
                being shown. <br>
                <br>
                Bug: <a moz-do-not-send="true"
                  class="moz-txt-link-freetext"
                  href="https://bugs.openjdk.java.net/browse/JDK-8165947">https://bugs.openjdk.java.net/browse/JDK-8165947</a>
                <br>
                webrev: <a moz-do-not-send="true"
                  class="moz-txt-link-freetext"
                  href="http://cr.openjdk.java.net/%7Epsadhukhan/8165947/webrev.00/">http://cr.openjdk.java.net/~psadhukhan/8165947/webrev.00/</a>
                <br>
                <br>
                Issue was in RasterPrinterJob, "noJobSheet" variable was
                set to false which when passed to
                PSPrinterJob#printExecCmd(), it results in adding "-o
                job-sheets=standard" to lpr command and <br>
                therefore, Banner page was getting printed by default. <br>
                Proposed fix is to check for defaultAttributeValue for
                JobSheets attribute so that we can find what is the
                default value reported by underlying platform and set
                "noJobSheet" value to default jobsheet native value <br>
                (like CUPS report job-sheet=none so that no banner page
                is to be printed by default even though it supports
                jobsheet) <br>
                <br>
                I tested "6575247:Banner checkbox in PrinterJob print
                dialog doesn't work" testcase in windows, solaris, linux
                and it works as expected. <br>
                <br>
                JCK test
                api/javax_swing/interactive/PrintTest.html#PrintTest via
                command <br>
                "/jdk-9/bin/java -showversion
                -Dswing.defaultlaf=com.sun.java.swing.plaf.motif.MotifLookAndFeel
                -cp /root/jck/JCK-runtime-9/classes:
                -Djava.security.policy=/root/jck/JCK-runtime-9/lib/jck.policy
                javasoft.sqe.tests.api.java.awt.interactive.PrintTest
                -platform.hasPrinter true -TestCaseID ALL" <br>
                also works ie no banner page is printed by default. <br>
                <br>
                Regards <br>
                Prasanta <br>
              </blockquote>
            </blockquote>
            <br>
          </blockquote>
        </blockquote>
        <br>
      </blockquote>
    </blockquote>
    <br>
  </body>
</html>