multithreading - Spring Batch multithread throwing java.lang.Thread.State -


i have web application developed using grails, spring, java , hibernate.

it contains batch job implemented using spring batch. when run job without multithreading works fine. introduce partitioning (and every partition handled different thread/multi threading) after processing of thread stuck in infinite loop , never comes back.

following stack trace when thread gets stuck.

java.lang.thread.state: runnable @ org.apache.commons.collections.map.abstracthashedmap.getentry(abstracthashedmap.java:440) @ org.apache.commons.collections.map.abstractreferencemap.getentry(abstractreferencemap.java:405) @ org.apache.commons.collections.map.abstractreferencemap.get(abstractreferencemap.java:230) @ org.grails.datastore.mapping.core.abstractdatastore.getobjecterrors(abstractdatastore.java:160) @ org.grails.datastore.mapping.core.datastore$getobjecterrors.call(unknown source) @ org.codehaus.groovy.runtime.callsite.callsitearray.defaultcall(callsitearray.java:42) @ org.grails.datastore.mapping.core.datastore$getobjecterrors.call(unknown source) @ org.grails.datastore.gorm.gormvalidationapi.geterrors(gormvalidationapi.groovy:137) @ sun.reflect.generatedmethodaccessor580.invoke(unknown source) @ sun.reflect.delegatingmethodaccessorimpl.invoke(delegatingmethodaccessorimpl.java:43) @ java.lang.reflect.method.invoke(method.java:601) @ com.springsource.loaded.ri.reflectiveinterceptor.jlrmethodinvoke(reflectiveinterceptor.java:1231) @ org.codehaus.groovy.reflection.cachedmethod.invoke(cachedmethod.java:90) @ groovy.lang.metamethod.domethodinvoke(metamethod.java:233) @ groovy.lang.metaclassimpl.invokemethod(metaclassimpl.java:1047) @ groovy.lang.expandometaclass.invokemethod(expandometaclass.java:1110) @ groovy.lang.metaclassimpl.invokemethod(metaclassimpl.java:877) @ org.codehaus.groovy.runtime.invokerhelper.invokepogomethod(invokerhelper.java:793) @ org.codehaus.groovy.runtime.invokerhelper.invokemethod(invokerhelper.java:776) @ org.codehaus.groovy.runtime.scriptbytecodeadapter.invokemethodn(scriptbytecodeadapter.java:164) @ org.grails.datastore.gorm.instancemethodinvokingclosure.call(gormenhancer.groovy:257) @ org.codehaus.groovy.runtime.metaclass.closurestaticmetamethod.invoke(closurestaticmetamethod.java:59) @ groovy.lang.metamethod.domethodinvoke(metamethod.java:233) @ groovy.lang.metaclassimpl.getproperty(metaclassimpl.java:1580) @ groovy.lang.expandometaclass.getproperty(expandometaclass.java:1140) @ groovy.lang.metaclassimpl.getproperty(metaclassimpl.java:3308) @ groovy.lang.expandometaclass.getproperty(expandometaclass.java:1152) @ org.codehaus.groovy.grails.orm.hibernate.metaclass.abstractdynamicpersistentmethod.setuperrorsproperty(abstractdynamicpersistentmethod.java:100) 

this portion of thread trace.

this trace tells me method in thread got stuck. not tell me details , method pretty big search problem. can 1 please me in matter telling me:

1) wrong looking @ trace?

2) how can see more detailed stack trace?

i have encountered same problem.

i use grails 1.3.7 , service stuck in infinite loop exactly.

the problem domainclassgrailsplugin not thread safe

http://jira.grails.org/browse/grails-7861

this patch solve problem

if grails version < 1.6.3

patch code replace softthreadlocalmap.java , reinstall grails application


Comments

Popular posts from this blog

linux - xterm copying to CLIPBOARD using copy-selection causes automatic updating of CLIPBOARD upon mouse selection -

c++ - qgraphicsview horizontal scrolling always has a vertical delta -