<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    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>
    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 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 class="moz-txt-link-freetext" href="http://cr.openjdk.java.net/~psadhukhan/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>
  </body>
</html>