77 lines
3.3 KiB
Diff
77 lines
3.3 KiB
Diff
2010-04-27 Andrew Haley <aph@redhat.com>
|
|
|
|
* gnu/javax/print/ipp/IppResponse.java (parseAttributes): Handle
|
|
IppValueTag.UNKNOWN.
|
|
* gnu/javax/print/ipp/IppRequest.java (writeOperationAttributes):
|
|
Handle RequestedAttributes.
|
|
* gnu/javax/print/ipp/IppPrintService.java (processResponse): Add
|
|
DocFlavor.SERVICE_FORMATTED.PAGEABLE and
|
|
DocFlavor.SERVICE_FORMATTED.PRINTABLE.
|
|
|
|
--- libjava/classpath/gnu/javax/print/ipp/IppRequest.java (revision 158788)
|
|
+++ libjava/classpath/gnu/javax/print/ipp/IppRequest.java (revision 158789)
|
|
@@ -434,6 +434,8 @@ public class IppRequest
|
|
PrinterURI printerUri = (PrinterURI) attributes.get(PrinterURI.class);
|
|
JobUri jobUri = (JobUri) attributes.get(JobUri.class);
|
|
JobId jobId = (JobId) attributes.get(JobId.class);
|
|
+ RequestedAttributes reqAttrs
|
|
+ = (RequestedAttributes)attributes.get(RequestedAttributes.class);
|
|
if (printerUri != null && jobId == null && jobUri == null)
|
|
{
|
|
write(printerUri);
|
|
@@ -467,6 +469,12 @@ public class IppRequest
|
|
logger.log(Component.IPP, "Attribute: Name: <" + jobUri.getCategory()
|
|
.getName() + "> Value: <" + jobUri.toString() + ">");
|
|
}
|
|
+ else if (reqAttrs != null)
|
|
+ {
|
|
+ write(reqAttrs);
|
|
+ attributes.remove(RequestedAttributes.class);
|
|
+ logger.log(Component.IPP, "RequestedAttributes: <" + reqAttrs + ">");
|
|
+ }
|
|
else
|
|
{
|
|
throw new IppException("Unknown target operation attribute combination.");
|
|
--- libjava/classpath/gnu/javax/print/ipp/IppPrintService.java (revision 158788)
|
|
+++ libjava/classpath/gnu/javax/print/ipp/IppPrintService.java (revision 158789)
|
|
@@ -356,8 +356,17 @@ public class IppPrintService implements
|
|
// should not happen, all fields are public
|
|
}
|
|
}
|
|
+
|
|
+ if (this.getClass()
|
|
+ .isAssignableFrom(gnu.javax.print.CupsPrintService.class))
|
|
+ {
|
|
+// CUPS always provides filters to convert from Postscript.
|
|
+// This logic looks odd, but it's what OpenJDK does.
|
|
+ flavors.add(DocFlavor.SERVICE_FORMATTED.PAGEABLE);
|
|
+ flavors.add(DocFlavor.SERVICE_FORMATTED.PRINTABLE);
|
|
+ }
|
|
}
|
|
-
|
|
+
|
|
// printer uris
|
|
Set uris = getPrinterAttributeSet(PrinterUriSupported.class);
|
|
printerUris = new ArrayList(uris.size());
|
|
--- libjava/classpath/gnu/javax/print/ipp/IppResponse.java (revision 158788)
|
|
+++ libjava/classpath/gnu/javax/print/ipp/IppResponse.java (revision 158789)
|
|
@@ -302,11 +302,14 @@ public class IppResponse
|
|
// out-of-band values
|
|
case IppValueTag.UNSUPPORTED:
|
|
case IppValueTag.UNKNOWN:
|
|
- case IppValueTag.NO_VALUE:
|
|
// TODO implement out-of-band handling
|
|
- // We currently throw an exception to see when it occurs - not yet :-)
|
|
- throw new IppException(
|
|
- "Unexpected name value for out-of-band value tag");
|
|
+ // We currently throw an exception to see when it occurs - not yet :-)
|
|
+ throw new IppException(
|
|
+ "Unexpected name value for out-of-band value tag " + tag);
|
|
+ case IppValueTag.NO_VALUE:
|
|
+ attribute = null;
|
|
+
|
|
+ break;
|
|
case IppValueTag.INTEGER:
|
|
int intValue = IppUtilities.convertToInt(value);
|
|
attribute = IppUtilities.getIntegerAttribute(name, intValue);
|