这是我正在使用的一个名为 Mirth 的应用程序,但它似乎来自 Apache Commons 库内部的一个方法,该方法检查某些内容是否确实是 Base64 编码的。所有文档都说唯一的返回是 true 或 false,那么我怎么得到 -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. The -61
据说是索引。
From 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 编码的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)