这个方法怎么给我一个-61错误?

这是我正在使用的一个名为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) 

它可能是一个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编码的。