attachment-0001

<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div><div>On Oct 8, 2009, at 4:43 PM, Tom Hastings wrote:</div><blockquote type="cite"><o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName">
<!--[if !mso]>
<style>
st1\:*{behavior:url(#default#ieooui) }
</style>
<![endif]-->
<style>
<!--
 /* Font Definitions */
 @font-face
        {font-family:Tahoma;
        panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
        {font-family:Monaco;
        panose-1:0 0 0 0 0 0 0 0 0 0;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0in;
        margin-bottom:.0001pt;
        font-size:12.0pt;
        font-family:"Times New Roman";}
a:link, span.MsoHyperlink
        {color:blue;
        text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
        {color:purple;
        text-decoration:underline;}
span.EmailStyle18
        {mso-style-type:personal-reply;
        font-family:Arial;
        color:navy;
        font-weight:normal;
        font-style:normal;}
@page Section1
        {size:8.5in 11.0in;
        margin:1.0in 1.25in 1.0in 1.25in;}
div.Section1
        {page:Section1;}
-->
</style>



<div lang="EN-US" link="blue" vlink="purple" style="word-wrap: break-word;
-webkit-nbsp-mode: space;-webkit-line-break: after-white-space">

<div class="Section1"><p class="MsoNormal"><font size="2" color="blue" face="Arial"><span style="font-size:
10.0pt;font-family:Arial;color:blue">I think we have agreement.&nbsp; Since the
Cancel-Jobs is now all or nothing, the Printer MUST return an error code if any
of the jobs could NOT be canceled, even if all the rest could be.&nbsp; <o:p></o:p></span></font></p><p class="MsoNormal"><font size="2" color="navy" face="Arial"><span style="font-size:
10.0pt;font-family:Arial;color:navy"><o:p>&nbsp;</o:p></span></font></p><p class="MsoNormal"><font size="2" color="blue" face="Arial"><span style="font-size:
10.0pt;font-family:Arial;color:blue">So if any are not the user’s, then
return:</span></font><font size="2" color="navy" face="Arial"><span style="font-size:
10.0pt;font-family:Arial;color:navy"> </span></font><a name="_Toc518405512"><span style="layout-grid-mode:line">client-error-not-authorized (0x0403)</span></a><o:p></o:p></p><p class="MsoNormal"><font size="2" color="blue" face="Arial"><span style="font-size:
10.0pt;font-family:Arial;color:blue">But if all are the user’s, but some
are not in a state to be canceled, return: </span></font><a name="_Toc518405513"><span style="layout-grid-mode:line">client-error-not-possible (0x0404)</span></a><o:p></o:p></p><p class="MsoNormal"><font size="3" face="Times New Roman"><span style="font-size:
12.0pt"><o:p>&nbsp;</o:p></span></font></p><p class="MsoNormal"><font size="2" color="blue" face="Arial"><span style="font-size:
10.0pt;font-family:Arial;color:blue">If the user requests “my-jobs”
= ‘true’, but there are no jobs that can be canceled, return: </span></font><a name="_Toc518405515"><span style="layout-grid-mode:line">client-error-not-found
(0x0406)</span></a><span style="layout-grid-mode:line"><o:p></o:p></span></p><p class="MsoNormal"><font size="2" face="Arial"><span style="font-size:10.0pt;
font-family:Arial;layout-grid-mode:line"><o:p>&nbsp;</o:p></span></font></p><p class="MsoNormal"><font size="2" color="blue" face="Arial"><span style="font-size:
10.0pt;font-family:Arial;color:blue;layout-grid-mode:line">If the user omits “job-ids”
and omits “my-jobs” (or supplies the default “my-jobs”
= ‘false’), return: </span></font><span style="layout-grid-mode:
line">client-error-not-authorized (0x0403)</span><font size="2" color="blue" face="Arial"><span style="font-size:10.0pt;font-family:Arial;color:blue;
layout-grid-mode:line">.&nbsp; But what if the only jobs that are cancelable
are the user’s?&nbsp; That could successfully cancel all jobs as long as
they all belonged to the user.&nbsp; An implementation could to this easily, by
simply checking each job that is cancelable and as soon as it finds one that
doesn’t belong to the requesting user, it stops checking and returns the </span></font><span style="layout-grid-mode:line">client-error-not-authorized (0x0403)</span><font size="2" color="blue" face="Arial"><span style="font-size:10.0pt;font-family:Arial;
color:blue;layout-grid-mode:line">; if all jobs belong to the user, it cancels
all of them and returns: </span></font><a name="_Toc518405504"><span style="layout-grid-mode:line">successful-ok (0x0000)</span></a><span style="layout-grid-mode:line">, OK?</span></p></div></div></o:smarttagtype></blockquote><div><br></div>Sounds reasonable.</div><div><br><blockquote type="cite"><o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName"><div lang="EN-US" link="blue" vlink="purple" style="word-wrap: break-word;
-webkit-nbsp-mode: space;-webkit-line-break: after-white-space"><div class="Section1"><p class="MsoNormal"><font size="2" color="blue" face="Arial"><span style="font-size:
10.0pt;font-family:Arial;color:blue;layout-grid-mode:line">If the operator
requests all jobs be canceled by omitting both “job-ids” and “my-jobs”
(or supplied “my-jobs” = ‘false’), and there are no
jobs that can be canceled, then return</span></font><span style="layout-grid-mode:
line"> client-error-not-found (0x0406)</span><font size="2" color="navy" face="Arial"><span style="font-size:10.0pt;font-family:Arial;color:navy"><o:p></o:p></span></font></p><p class="MsoNormal"><font size="2" color="navy" face="Arial"><span style="font-size:
10.0pt;font-family:Arial;color:navy"><o:p>&nbsp;</o:p></span></font></p><p class="MsoNormal"><font size="2" color="blue" face="Arial"><span style="font-size:
10.0pt;font-family:Arial;color:blue">I don’t see a good way to indicate
which jobs are the offending jobs.&nbsp; Returning the “job-ids” in
the Unsupported attributes group with the values removed that could have been
canceled is about as close as I can get, but that is for a successfully completed
operation which returns the status code: </span></font><a name="_Toc518405506"><span style="layout-grid-mode:line">successful-ok-conflicting-attributes (0x0002)</span></a><font size="2" color="blue" face="Arial"><span style="font-size:10.0pt;font-family:Arial;
color:blue">.&nbsp; </span></font></p></div></div></o:smarttagtype></blockquote><div><br></div>According to 3.1.7 of RFC 2911, any operation can include an unsupported group in its response, regardless of the status code; there are handful of status codes that require an unsupported group be present...</div><div><br></div><div>So, I think we are OK returning the job-ids that are causing the error in the unsupported group of the response.</div><div><span class="Apple-style-span" style="color: rgb(0, 0, 128); font-family: Arial; font-size: 13px; ">&nbsp;</span></div><div><blockquote type="cite"><o:smarttagtype namespaceuri="urn:schemas-microsoft-com:office:smarttags" name="PersonName"><div lang="EN-US" link="blue" vlink="purple" style="word-wrap: break-word;
-webkit-nbsp-mode: space;-webkit-line-break: after-white-space"><div class="Section1"><p class="MsoNormal"><font size="2" color="navy" face="Arial"><span style="font-size:
10.0pt;font-family:Arial;color:navy;background:red">ISSUE</span></font><font size="2" color="navy" face="Arial"><span style="font-size:10.0pt;font-family:Arial;
color:navy;background:yellow">: OK that the Printer doesn’t try to return
which jobs are the ones causing the rejection?&nbsp; Instead, OK just to indicate
that the client can do a Get-Jobs (before or after a Cancel-Jobs request) with
a “job-ids” supplied and get the status and ownership of each of
the jobs to help the user?</span></font><font size="2" color="navy" face="Arial"><span style="font-size:10.0pt;font-family:Arial;color:navy"><o:p></o:p></span></font></p></div></div></o:smarttagtype></blockquote></div><div><br></div>I don't like that approach since it introduces a race condition - the offending job might change state between Get-Jobs, Cancel-Jobs, and Get-Jobs, so better for the printer to say what the problem is instead.<div><br></div><div>That said, we should only include the job-ids attribute in the response if it was supplied in the request, since otherwise we are only canceling jobs that can be canceled at that moment.</div><div><br><div>
<span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Monaco; font-size: medium; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div>___________________________________________________</div><div>Michael Sweet, Senior Printing System Engineer</div><div><br></div></span><br class="Apple-interchange-newline">
</div>
<br></div><br />-- 
<br />This message has been scanned for viruses and
<br />dangerous content by
<a href="http://www.mailscanner.info/"><b>MailScanner</b></a>, and is
<br />believed to be clean.
</body></html>