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

发布于 2024-08-31 21:19:19 字数 1176 浏览 4 评论 0原文

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

This is in an application I am using called Mirth, but it appears to be coming from inside an Apache Commons library from a method that checks if something is indeed Base64 encoded or not. All of the docs say the only return is true or false, so how am I getting -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)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

那小子欠揍 2024-09-07 21:19:19

这可能是 ArrayIndexOutOfBoundsException< /a>. -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 编码的。

It's likely an ArrayIndexOutOfBoundsException. The -61 is supposedly the index.

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     }

Apparently the input isn't Base64 encoded.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文