文章来源于网络, 自己也遇到同样的问题,也是采用这样的方式解决的。原文链接http://zuiyanwangyue.iteye.com/blog/470638

在 HibernateDaoSupport的子类中有如下语句:List retValue=getHibernateTemplate().find("from ViewAttachAuth where 1=1"),其中ViewAttachAuth是自定义的实体对象,映射到数据库中的一个视图,按理说retValue应该是一个类型为 ArrayList的对象,并且retValue中的每一个元素都是ViewAttachAuth对象,可是我在调试的时候发现返回对象的 toString()方法得到的竟然是"com.sun.jdi.InvocationException occurred invoking method.",和普通的ArrayList对象的toString方法显然是不一样的,但是如果把它当做List接口来使用的话并不会出现问题,而如 果System.out.println(retValue)的话则会出现java.lang.StackOverflowError堆栈溢出的错误,造 成程序崩溃。综合网上的相关帖子以及自己使用Hibernate的经验初步断定这个现象和Hibernate的缓存以及延迟加载策略相关,不过 ViewAttachAuth对应的视图中的记录并不多,只有四五条,在这么小的数据量的情况下Hibernate不至于启动二级缓存什么的吧,看来还得 好好想想是怎么回事。

接下来的几分钟里我的脑海中一直出现一个字符串:toString,会不是toString这个方法本身的问题呢。按照这个思路我检查了我自己的实体类ViewAttachAuth,发现它的toString方法是下面这样定义的。

public String toString() {
return org.apache.commons.lang.ObjectUtils.toString(this);
}

于是我尝试着改成下面这样:

    public String toString() {
StringBuffer sb=new StringBuffer("[");
sb.append("lsh="+getLsh()+",");
sb.append("aname="+getAname()+",");
sb.append("asize="+getAsize()+",");
sb.append("description="+getDescription()+",");
return sb.toString();
}

问题解决了。于是我忍不住想看看
org.apache.commons.lang.ObjectUtils.toString(Object
obj)的源码,看看里面究竟有什么魔力让我的程序崩溃,接下来的一幕让我惊呆了,下面是ObjectUtils中toString方法的源码片段:

public static String toString(Object obj) {
return obj == null ? "" : obj.toString();
}

看到这里我最初的toString方法能引起程序崩溃也就不足为奇了:又是死循环!

com.sun.jdi.InvocationException occurred invoking method.的更多相关文章

  1. J2EE在Web容器中启动报错:com.sun.jdi.InvocationException occurred invoking method.

    我只是将Hibernate映射文件中的lazy属性有true改为lazy="false",即解决了上述问题.当然我之前也遇到一个问题是不调试时插入数据是不成功的,但是在Debug模 ...

  2. eclipse调试的时候查看变量出现com.sun.jdi.InvocationException occurred invoking method.

    症状:如题 分析/解决方案:你的toString抛出了异常,去查看toString的代码是不是有问题,比如说空指针什么的

  3. com.sun.jdi.InvocationException occurred invoking method 异常

    参考链接:https://stackoverflow.com/questions/4123628/com-sun-jdi-invocationexception-occurred-invoking-m ...

  4. com.sun.jdi.InvocationException occurred invoking

    调试时候出现com.sun.jdi.InvocationException occurred invoking method 原因:因为hibernate的延迟加载引起 修改:修改hbm映射文件的对象 ...

  5. com.sun.jdi.internalException:Unexpected JDWP Error:103////Method threw 'java.lang.IllegalArgumentEx

    retrofit2+RxJava2 的一些坑 今天开发新项目,本着积极向上的学习态度,经过多番考虑我决定使用retrofit2 + RxJava2来做为我的网络请求......神说:你的想法非常好 先 ...

  6. sun.misc.Unsafe.park(Native Method)

    关闭tomcat时或者重启tomcat时 log4j2 报错: sun.misc.Unsafe.park(Native Method) 异常信息: 30-Aug-2018 15:59:34.900 S ...

  7. Cannot connect to VM com.sun.jdi.connect.TransportTimeoutException

    Cannot connect to VM com.sun.jdi.connect.TransportTimeoutException 描述 在用eclipse进行debug的时候弹出了上面的错误,在s ...

  8. at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    控制台包空指针后跟这个异常,是因为控制层调用service时的失败,无法读到sql,问题在于controller在引入的service没有自动装配,在引入多个service时,每个service都要自 ...

  9. sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

    在使用Hibernate的J2EE项目中,莫名其妙出现如上错误,既不报错,也不运行不论什么输出測试代码,更不返回结果. 经过排查,在方法里面引用的实体类和其映射文件属性个数不一致. 改动一致后,即解决 ...

随机推荐

  1. OA、CRM、ERP之间的区别和联系是什么?

    我们假设你是某机械行业的销售,一切从今天你收到公司的邮件,去上海参加展会开始 因为 去展会 所有 首先 你打开 OA 登陆 填写出差申请表 送交主管审批 填表--审批--行政订票酒店 然后呢 你飞去上 ...

  2. <转>golang 并发性能数据

    1.管道chan吞吐极限10,000,000,单次Put,Get耗时大约100ns/op,无论是采用单Go程,还是多Go程并发(并发数:100, 10000, 100000),耗时均没有变化,Go内核 ...

  3. VB.NET Shared(共享)和 Static(静态)关键字的区别

    共享成员(Shared): VB.NET现在是支持真正的面向对象编程,可以继承.使用多态.共享成员 和静态成员. 共享成员就是在所有类和所定义派生类的实例之间共享的方法.属 性.字段和事件.所有使用类 ...

  4. oracle使用还原段的目的和还原数据的管理方法及还原段的类型

    一.引入还原段主要有3个目的: 1.事务回滚:主要是针对rollback语句起作用 2.事务恢复:非正常关闭数据库即非保留事务级关闭数据库(abort.immediate)或者数据库instance崩 ...

  5. LinearLayout遇到的问题——利用LinearLayout做横向滑动冲突

    问题:当我添加两个TextView的时候,然后滑动,发现只生成了一个TextView. 就是 <?xml version="1.0" encoding="utf-8 ...

  6. 引用JS表单验证大全 以后方便查看用

    1:js 字符串长度限制.判断字符长度 .js限制输入.限制不能输入.textarea 长度限制 2.:js判断汉字.判断是否汉字 .只能输入汉字 3:js判断是否输入英文.只能输入英文 4:js只能 ...

  7. Zend Framework 框架搭建

    通过手工方法搭建Zend Framework的MVC框架结构.首先看一下zend framework mvc的目录结构 1. 在根目录下面创建 public ,并在 public 下创建 index. ...

  8. 关于淘宝的数据来源,针对做淘宝客网站的淘宝api调用方法

    上次写了个淘宝返利模式的博客,直接被移除首页,不知道何故啊.可能是真的跟技术不太刮边. 众所周知,能够支撑一个网站运营的最基础不是程序写的多么好.也不是有多么牛X的运营人员,最主要的是数据,如果没有数 ...

  9. 检测delphi的程序的内存泄漏

    在主窗体的FormCreate 加入ReportMemoryLeaksOnShutdown := True;

  10. 多线程 NSThread GCD

    ios多线程实现种类 NSThread NSOperationQueue NSObject GCD *************** 1.NSThread //线程 第一种 NSThread *thre ...