【问题标题】:How does this method give me a -61 Error?这种方法如何给我一个 -61 错误?
【发布时间】:2010-05-09 23:56:17
【问题描述】:

这是在我正在使用的名为 Mirth 的应用程序中,但它似乎来自 Apache Commons 库中的一个方法,该方法检查某些内容是否确实是 Base64 编码的。所有的文档都说唯一的回报是真或假,那我怎么得到-61?

-61
org.apache.commons.codec.binary.Base64.isBase64(Base64.java:137)
org.apache.commons.codec.binary.Base64.discardNonBase64(Base64.java:478)
org.apache.commons.codec.binary.Base64.decodeBase64(Base64.java:374)
org.apache.commons.codec.binary.Base64.decode(Base64.java:220)
com.webreach.mirth.plugins.pdfviewer.PDFViewer.viewAttachments(PDFViewer.java:51)
com.webreach.mirth.client.ui.browsers.message.MessageBrowser$16.doInBackground(MessageBrowser.java:1429)
com.webreach.mirth.client.ui.browsers.message.MessageBrowser$16.doInBackground(MessageBrowser.java:1426)
org.jdesktop.swingworker.SwingWorker$1.call(SwingWorker.java:276)
java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
java.util.concurrent.FutureTask.run(FutureTask.java:138)
org.jdesktop.swingworker.SwingWorker.run(SwingWorker.java:315)
java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
java.lang.Thread.run(Thread.java:637)

【问题讨论】:

    标签: java stack-trace mirth


    【解决方案1】:

    很可能是ArrayIndexOutOfBoundsException-61 应该是索引。

    来自http://kickjava.com/src/org/apache/commons/codec/binary/Base64.java.htm

    134     private  static boolean isBase64(byte octect) {
    135         if (octect == PAD) {
    136             return true;
    137         } else if (base64Alphabet[octect] == -1) { // <---
    138             return false;
    139         } else {
    140             return true;
    141         }
    142     }
    

    显然输入不是 Base64 编码的。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-14
    • 1970-01-01
    相关资源
    最近更新 更多