Note that there are some explanatory texts on larger screens.

plurals
  1. POSpring Batch multithread throwing java.lang.Thread.State
    primarykey
    data
    text
    <p>I have a web application developed using <code>Grails</code>, <code>Spring</code>, <code>Java</code> and <code>Hibernate</code>. </p> <p>It contains a batch job implemented using <code>Spring Batch</code>. When I run the job without multithreading it works fine. As soon as I introduce partitioning (and every partition is handled by a different thread/multi threading) after some processing some of the thread get stuck in an infinite loop and never comes back.</p> <p>Following is the stack trace when thread gets stuck.</p> <pre><code>java.lang.Thread.State: RUNNABLE at org.apache.commons.collections.map.AbstractHashedMap.getEntry(AbstractHashedMap.java:440) at org.apache.commons.collections.map.AbstractReferenceMap.getEntry(AbstractReferenceMap.java:405) at org.apache.commons.collections.map.AbstractReferenceMap.get(AbstractReferenceMap.java:230) at org.grails.datastore.mapping.core.AbstractDatastore.getObjectErrors(AbstractDatastore.java:160) at org.grails.datastore.mapping.core.Datastore$getObjectErrors.call(Unknown Source) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:42) at org.grails.datastore.mapping.core.Datastore$getObjectErrors.call(Unknown Source) at org.grails.datastore.gorm.GormValidationApi.getErrors(GormValidationApi.groovy:137) at sun.reflect.GeneratedMethodAccessor580.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at com.springsource.loaded.ri.ReflectiveInterceptor.jlrMethodInvoke(ReflectiveInterceptor.java:1231) at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1047) at groovy.lang.ExpandoMetaClass.invokeMethod(ExpandoMetaClass.java:1110) at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:877) at org.codehaus.groovy.runtime.InvokerHelper.invokePogoMethod(InvokerHelper.java:793) at org.codehaus.groovy.runtime.InvokerHelper.invokeMethod(InvokerHelper.java:776) at org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodN(ScriptBytecodeAdapter.java:164) at org.grails.datastore.gorm.InstanceMethodInvokingClosure.call(GormEnhancer.groovy:257) at org.codehaus.groovy.runtime.metaclass.ClosureStaticMetaMethod.invoke(ClosureStaticMetaMethod.java:59) at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233) at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:1580) at groovy.lang.ExpandoMetaClass.getProperty(ExpandoMetaClass.java:1140) at groovy.lang.MetaClassImpl.getProperty(MetaClassImpl.java:3308) at groovy.lang.ExpandoMetaClass.getProperty(ExpandoMetaClass.java:1152) at org.codehaus.groovy.grails.orm.hibernate.metaclass.AbstractDynamicPersistentMethod.setupErrorsProperty(AbstractDynamicPersistentMethod.java:100) </code></pre> <p>This is just a portion of thread trace.</p> <p>This trace only tells me about the a method in which my thread got stuck. It does not tell me any details and method is pretty big to search for a problem. Can any one please help me in this matter telling me:</p> <p>1) What is wrong looking at the trace?</p> <p>2) How can I see more detailed stack trace? </p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload