We are getting a frequent issue of [STUCK] ExecuteThread after making an Web service call. We are trying to Unmarshall the service response with a static method like below, Is any of the code below causing StuckThreadMaxTime? Please find the log below.
Code
-----------
public static Object parseToObject(Element domElement, String contextPath) {
Object returnObjc = null;
try {
Object parsedElement = null;
JAXBContext jaxbContext = JAXBContext.newInstance(contextPath);
parsedElement = jaxbContext.createUnmarshaller().unmarshal(domElement);
returnObject = parsedElement;
if (parsedElement instanceof JAXBElement) {
JAXBElement<?> jaxbElement = (JAXBElement<?>) parsedElement;
returnObject = jaxbElement.getValue();
}
} catch (JAXBException ignore) {
}
return returnObject;
}
Log
-----
which is more than the configured time (StuckThreadMaxTime) of "600" seconds. Stack trace:
Thread-5544 "[STUCK] ExecuteThread: '36' for queue: 'weblogic.kernel.Default (self-tuning)'" <alive, suspended, parked, priority=1, DAEMON> {
java.util.concurrent.locks.LockSupport.park(LockSupport.java:156)
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:747)
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:862)
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1196)
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:594)
com.sun.xml.bind.v2.runtime.reflect.opt.Injector.inject(Injector.java:199)
com.sun.xml.bind.v2.runtime.reflect.opt.Injector.inject(Injector.java:94)
com.sun.xml.bind.v2.runtime.reflect.opt.AccessorInjector.prepare(AccessorInjector.java:70)
com.sun.xml.bind.v2.runtime.reflect.opt.OptimizedAccessorFactory.get(OptimizedAccessorFactory.java:147)
com.sun.xml.bind.v2.runtime.reflect.Accessor$FieldReflection.optimize(Accessor.java:250)
com.sun.xml.bind.v2.runtime.property.SingleElementLeafProperty.<init>(SingleElementLeafProperty.java:75)
sun.reflect.GeneratedConstructorAccessor127.newInstance(Unknown Source)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:501)
com.sun.xml.bind.v2.runtime.property.PropertyFactory.create(PropertyFactory.java:100)
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java:132)
com.sun.xml.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:479)
com.sun.xml.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:497)
com.sun.xml.bind.v2.runtime.property.SingleElementNodeProperty.<init>(SingleElementNodeProperty.java:88)
sun.reflect.GeneratedConstructorAccessor118.newInstance(Unknown Source)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:501)
com.sun.xml.bind.v2.runtime.property.PropertyFactory.create(PropertyFactory.java:100)
com.sun.xml.bind.v2.runtime.ClassBeanInfoImpl.<init>(ClassBeanInfoImpl.java:132)
com.sun.xml.bind.v2.runtime.JAXBContextImpl.getOrCreate(JAXBContextImpl.java:479)
com.sun.xml.bind.v2.runtime.JAXBContextImpl.<init>(JAXBContextImpl.java:256)
com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:139)
com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:79)
com.sun.xml.bind.v2.ContextFactory.createContext(ContextFactory.java:148)
sun.reflect.GeneratedMethodAccessor5746.invoke(Unknown Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:575)
javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:113)
javax.xml.bind.ContextFinder.find(ContextFinder.java:226)
javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:372)
javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:337)
javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:244)