我正在使用IcePDF组件在我的网页上查看JApplet中的pdf。但由于某种原因,我得到了这个错误。任何人都可以告诉为什么会发生这种情况以及如何解决它?
Exception in thread "thread applet-applet.KitKitApplet.class-1" java.lang.StackOverflowError
at java.util.PropertyPermissionCollection.implies(Unknown Source)
at java.security.Permissions.implies(Unknown Source)
at sun.security.provider.PolicyFile.implies(Unknown Source)
at java.security.ProtectionDomain.implies(Unknown Source)
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPropertyAccess(Unknown Source)
at java.lang.System.getProperty(Unknown Source)
at org.icepdf.core.util.Defs.property(Defs.java:59)
at org.icepdf.core.util.Defs.property(Defs.java:63)
at org.icepdf.core.util.Defs.property(Defs.java:63)
at org.icepdf.core.util.Defs.property(Defs.java:63)
at org.icepdf.core.util.Defs.property(Defs.java:63)
at org.icepdf.core.util.Defs.property(Defs.java:63)
at org.icepdf.core.util.Defs.property(Defs.java:63)
答案 0 :(得分:7)
看起来你遇到了this bug。该程序正在尝试读取applet沙箱不允许其读取的系统属性,并且IcePDF无法正确处理随后的SecurityException
。
答案 1 :(得分:1)
当前线程已耗尽其堆栈空间时,会引发此异常。当函数递归次数太多时,可能会发生这种情况,通常是非终止递归的结果。
答案 2 :(得分:0)
你有一些编译没有调试符号的东西,这就是你到处都看到未知来源的原因。最重要的是非常明显,你的SecurityManager没有设置正确的权限来执行java.lang.System.getProperty()。您需要配置applet安全权限,以允许该库访问它尝试获取的任何属性。您可能需要Sign your Applet才能使代码正常工作。