Errors according CUPS Java source files

Thomas Küstermann t.kuestermann at tu-bs.de
Thu Apr 17 09:47:23 PDT 2008


Hello!

Before I place a Bug report, can anybody confirm these problems, please?

First of all, I want to refer to the Java class com.easysw.cups.IPPAttribute (<cups_directory>/scripting/java/src/com/easysw/IPPAttribute.java):

- Missing import statements for "Charset" and "ByteBuffer":
  <code>
  import java.nio.ByteBuffer;
  import java.nio.charset.Charset;
  </code>

- Line 266 / 372 should be:
  <code>Charset utf8 = Charset.forName("UTF-8"); // Java Syntax</code>
  instead of
  <code>Charset utf8 = Charset::forName("UTF-8"); // C-Syntax</code>

- Each occurency of <code>n = temp.capacity();</code> should be replaced with <code>n = temp.remaining();</code> in order to prevent a BufferUnderflowException, refering to http://java.sun.com/javase/6/docs/api/java/nio/ByteBuffer.html#get(byte[], int, int)

Secondly, I want to refer to the CUPS Java archive (cups.jar) placed in <cups_directory>/scripting/java/ :

- The archive contains old CUPS Java classes, which use ISO-8859-1 instead of UTF-8 contrary to the source files
- The archive is not right formatted. It looks like:

  <jar tf cups.jar>
     META-INF/
     META-INF/MANIFEST.MF
     ../../../../classes/com/easysw/cups/
     ../../../../classes/com/easysw/cups/IPPDefs.class
     ../../../../classes/com/easysw/cups/IPPError.class
     ../../../../classes/com/easysw/cups/IPPStatus.class
     ../../../../classes/com/easysw/cups/IPPCalendar.class
     ../../../../classes/com/easysw/cups/IPPValue.class
     ../../../../classes/com/easysw/cups/IPPAttribute.class
     ../../../../classes/com/easysw/cups/IPPRequest.class
     ../../../../classes/com/easysw/cups/IPPURLConnection.class
     ../../../../classes/com/easysw/cups/IPP.class
     ../../../../classes/com/easysw/cups/IPPHttp.class
     ../../../../classes/com/easysw/cups/CupsJob.class
     ../../../../classes/com/easysw/cups/Cups.class
     ../../../../classes/com/easysw/cups/CupsPrinter.class
     ../../../../classes/com/easysw/cups/IPPBase64Encoder.class
     ../../../../classes/com/easysw/cups/IPPMD5.class
  </jar tf cups.jar>

  But it has to look like this, in order to fulfill the specs:

  <jar tf cups.jar>
     META-INF/
     META-INF/MANIFEST.MF
     com/easysw/cups/
     com/easysw/cups/IPPDefs.class
     com/easysw/cups/IPPError.class
     com/easysw/cups/IPPStatus.class
     com/easysw/cups/IPPCalendar.class
     com/easysw/cups/IPPValue.class
     com/easysw/cups/IPPAttribute.class
     com/easysw/cups/IPPRequest.class
     com/easysw/cups/IPPURLConnection.class
     com/easysw/cups/IPP.class
     com/easysw/cups/IPPHttp.class
     com/easysw/cups/CupsJob.class
     com/easysw/cups/Cups.class
     com/easysw/cups/CupsPrinter.class
     com/easysw/cups/IPPBase64Encoder.class
     com/easysw/cups/IPPMD5.class
  </jar tf cups.jar>



Can anybody confirm the described problems?

- TK




More information about the cups mailing list