当前位置: 代码迷 >> J2EE >> java程序报错,在报错位置打上断点,异常消失
  详细解决方案

java程序报错,在报错位置打上断点,异常消失

热度:43   发布时间:2016-04-17 23:26:46.0
java程序报错,在报错位置打上断点,错误消失
问题如题,报错位置是在EntityManager查询数据库,未查询到数据引起的,如果我在报错位置前几行打上断点,却又能够查询到相应数据,错误也就随之消失。去掉断点,重新运行,错误依旧。
报错代码如下:

MeterSet meterSet = em.find(MeterSet.class, task.getMeterSetID());
System.out.println("MeterSetID:"+task.getMeterSetID()+",MeterSet:" + meterSet);

for (int j = 0; j < meterSet.getItems().size(); j++) {....}


报错日志如下:

10:07:21,207 ERROR [stderr] (Thread-92) Caused by: java.lang.NullPointerException

10:07:21,207 ERROR [stderr] (Thread-92)  at com.keyman.fss.ejb.ExtendTaskAsynchronicWithoutPosBean.extendTask2Works(ExtendTaskAsynchronicWithoutPosBean.java:65)

10:07:21,207 ERROR [stderr] (Thread-92)  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

10:07:21,207 ERROR [stderr] (Thread-92)  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

10:07:21,207 ERROR [stderr] (Thread-92)  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

10:07:21,207 ERROR [stderr] (Thread-92)  at java.lang.reflect.Method.invoke(Method.java:597)

10:07:21,223 ERROR [stderr] (Thread-92)  at org.jboss.as.ee.component.ManagedReferenceMethodInterceptorFactory$ManagedReferenceMethodInterceptor.processInvocation(ManagedReferenceMethodInterceptorFactory.java:72)

10:07:21,223 ERROR [stderr] (Thread-92)  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

10:07:21,223 ERROR [stderr] (Thread-92)  at org.jboss.invocation.WeavedInterceptor.processInvocation(WeavedInterceptor.java:53)

10:07:21,223 ERROR [stderr] (Thread-92)  at org.jboss.as.ee.component.interceptors.UserInterceptorFactory$1.processInvocation(UserInterceptorFactory.java:36)

10:07:21,223 ERROR [stderr] (Thread-92)  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

10:07:21,223 ERROR [stderr] (Thread-92)  at org.jboss.as.jpa.interceptor.SBInvocationInterceptor.processInvocation(SBInvocationInterceptor.java:47)

10:07:21,223 ERROR [stderr] (Thread-92)  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

10:07:21,223 ERROR [stderr] (Thread-92)  at org.jboss.invocation.InitialInterceptor.processInvocation(InitialInterceptor.java:21)

10:07:21,223 ERROR [stderr] (Thread-92)  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

10:07:21,223 ERROR [stderr] (Thread-92)  at org.jboss.invocation.ChainedInterceptor.processInvocation(ChainedInterceptor.java:61)

10:07:21,223 ERROR [stderr] (Thread-92)  at org.jboss.as.ee.component.interceptors.ComponentDispatcherInterceptor.processInvocation(ComponentDispatcherInterceptor.java:53)

10:07:21,223 ERROR [stderr] (Thread-92)  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

10:07:21,223 ERROR [stderr] (Thread-92)  at org.jboss.as.ejb3.component.pool.PooledInstanceInterceptor.processInvocation(PooledInstanceInterceptor.java:51)

10:07:21,223 ERROR [stderr] (Thread-92)  at org.jboss.invocation.InterceptorContext.proceed(InterceptorContext.java:288)

10:07:21,223 ERROR [stderr] (Thread-92)  at org.jboss.as.ejb3.tx.CMTTxInterceptor.invokeInOurTx(CMTTxInterceptor.java:228)

10:07:21,223 ERROR [stderr] (Thread-92)  ... 19 more


------解决思路----------------------
猜测应该是和task有关,加断点,就代表是同步执行了,去掉断点是异步的
------解决思路----------------------
可能就是2L说的,异步了
  相关解决方案