Delegator creation fails with new ExecutionPool on trunk

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

Delegator creation fails with new ExecutionPool on trunk

alexander.reelsen@lusini.com
Hi there,

the creation of the delegator done in GenericDelegator fails for me, when starting ofbiz or running run-install-exttest. This is the exception I am getting for each delegator

     [java] 2011-07-08 10:15:17,691 (ofbiz-config-2) [    GenericHelperFactory:62 :WARN ]
     [java] ---- exception report ----------------------------------------------------------
     [java] Exception: java.lang.ClassNotFoundException
     [java] Message: org.ofbiz.entity.datasource.GenericHelperDAO
     [java] ---- stack trace ---------------------------------------------------------------
     [java] java.lang.ClassNotFoundException: org.ofbiz.entity.datasource.GenericHelperDAO
     [java] java.net.URLClassLoader$1.run(URLClassLoader.java:202)
     [java] java.security.AccessController.doPrivileged(Native Method)
     [java] java.net.URLClassLoader.findClass(URLClassLoader.java:190)
     [java] java.lang.ClassLoader.loadClass(ClassLoader.java:307)
     [java] java.lang.ClassLoader.loadClass(ClassLoader.java:248)
     [java] org.ofbiz.entity.datasource.GenericHelperFactory.getHelper(GenericHelperFactory.java:60)
     [java] org.ofbiz.entity.GenericDelegator.initializeOneGenericHelper(GenericDelegator.java:268)
     [java] org.ofbiz.entity.GenericDelegator.access$000(GenericDelegator.java:89)
     [java] org.ofbiz.entity.GenericDelegator$1.call(GenericDelegator.java:287)
     [java] org.ofbiz.entity.GenericDelegator$1.call(GenericDelegator.java:285)
     [java] java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
     [java] java.util.concurrent.FutureTask.run(FutureTask.java:138)
     [java] java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
     [java] java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
     [java] java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
     [java] java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
     [java] java.lang.Thread.run(Thread.java:680)
     [java] --------------------------------------------------------------------------------

When removing the ExecutionPool specific code which returns the Callable stuff from the GenericDelegator everything gets back to work, so there might be some problem.

Perhaps anyone knows more than me about this :-)

Regards and have a nice day!


--Alexander
_____________________________________________________

Lusini GmbH
Alexander Reelsen, Research & Development
Adams-Lehmann-Straße 109, 80797 München

Telefon  +49-89-416 170 10
Telefax +49-89-416 170 190
E-Mail [hidden email]<mailto:[hidden email]>

Sitz der Gesellschaft: München,  HRB 188366,
Amtsgericht München, Geschäftsführer: Markus Bohl
USt IdNr. DE 270565360, Steuernr. 152/131/90056
_____________________________________________________

Reply | Threaded
Open this post in threaded view
|

Re: Delegator creation fails with new ExecutionPool on trunk

Adam Heath-2
On 07/08/2011 03:31 AM, [hidden email] wrote:

> Hi there,
>
> the creation of the delegator done in GenericDelegator fails for me, when starting ofbiz or running run-install-exttest. This is the exception I am getting for each delegator
>
>       [java] 2011-07-08 10:15:17,691 (ofbiz-config-2) [    GenericHelperFactory:62 :WARN ]
>       [java] ---- exception report ----------------------------------------------------------
>       [java] Exception: java.lang.ClassNotFoundException
>       [java] Message: org.ofbiz.entity.datasource.GenericHelperDAO
>       [java] ---- stack trace ---------------------------------------------------------------
>       [java] java.lang.ClassNotFoundException: org.ofbiz.entity.datasource.GenericHelperDAO
>       [java] java.net.URLClassLoader$1.run(URLClassLoader.java:202)
>       [java] java.security.AccessController.doPrivileged(Native Method)
>       [java] java.net.URLClassLoader.findClass(URLClassLoader.java:190)
>       [java] java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>       [java] java.lang.ClassLoader.loadClass(ClassLoader.java:248)
>       [java] org.ofbiz.entity.datasource.GenericHelperFactory.getHelper(GenericHelperFactory.java:60)
>       [java] org.ofbiz.entity.GenericDelegator.initializeOneGenericHelper(GenericDelegator.java:268)
>       [java] org.ofbiz.entity.GenericDelegator.access$000(GenericDelegator.java:89)
>       [java] org.ofbiz.entity.GenericDelegator$1.call(GenericDelegator.java:287)
>       [java] org.ofbiz.entity.GenericDelegator$1.call(GenericDelegator.java:285)
>       [java] java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>       [java] java.util.concurrent.FutureTask.run(FutureTask.java:138)
>       [java] java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
>       [java] java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
>       [java] java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>       [java] java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>       [java] java.lang.Thread.run(Thread.java:680)
>       [java] --------------------------------------------------------------------------------
>
> When removing the ExecutionPool specific code which returns the Callable stuff from the GenericDelegator everything gets back to work, so there might be some problem.
>
> Perhaps anyone knows more than me about this :-)
>
> Regards and have a nice day!

I'm not surprised there are race conditions in ofbiz.  The
double-checked lock(DCL) pattern is broken, and shouldn't be used.

I'll try to spend some time looking into this.
Reply | Threaded
Open this post in threaded view
|

Re: Delegator creation fails with new ExecutionPool on trunk

Adam Heath-2
In reply to this post by alexander.reelsen@lusini.com
On 07/08/2011 03:31 AM, [hidden email] wrote:

> Hi there,
>
> the creation of the delegator done in GenericDelegator fails for me, when starting ofbiz or running run-install-exttest. This is the exception I am getting for each delegator
>
>       [java] 2011-07-08 10:15:17,691 (ofbiz-config-2) [    GenericHelperFactory:62 :WARN ]
>       [java] ---- exception report ----------------------------------------------------------
>       [java] Exception: java.lang.ClassNotFoundException
>       [java] Message: org.ofbiz.entity.datasource.GenericHelperDAO
>       [java] ---- stack trace ---------------------------------------------------------------
>       [java] java.lang.ClassNotFoundException: org.ofbiz.entity.datasource.GenericHelperDAO
>       [java] java.net.URLClassLoader$1.run(URLClassLoader.java:202)
>       [java] java.security.AccessController.doPrivileged(Native Method)
>       [java] java.net.URLClassLoader.findClass(URLClassLoader.java:190)
>       [java] java.lang.ClassLoader.loadClass(ClassLoader.java:307)
>       [java] java.lang.ClassLoader.loadClass(ClassLoader.java:248)
>       [java] org.ofbiz.entity.datasource.GenericHelperFactory.getHelper(GenericHelperFactory.java:60)
>       [java] org.ofbiz.entity.GenericDelegator.initializeOneGenericHelper(GenericDelegator.java:268)
>       [java] org.ofbiz.entity.GenericDelegator.access$000(GenericDelegator.java:89)
>       [java] org.ofbiz.entity.GenericDelegator$1.call(GenericDelegator.java:287)
>       [java] org.ofbiz.entity.GenericDelegator$1.call(GenericDelegator.java:285)
>       [java] java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
>       [java] java.util.concurrent.FutureTask.run(FutureTask.java:138)
>       [java] java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:98)
>       [java] java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:206)
>       [java] java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
>       [java] java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
>       [java] java.lang.Thread.run(Thread.java:680)
>       [java] --------------------------------------------------------------------------------
>
> When removing the ExecutionPool specific code which returns the Callable stuff from the GenericDelegator everything gets back to work, so there might be some problem.

It's the Thread.currentThread().getContextClassLoader() call in
GenericHelperFactory that is broken.  Good catch, valid bug.  Could
you please file this in jira?

Reply | Threaded
Open this post in threaded view
|

Re: Delegator creation fails with new ExecutionPool on trunk

alexander.reelsen@lusini.com
Hey,

On Jul 8, 2011, at 5:40 PM, Adam Heath wrote:
It's the Thread.currentThread().getContextClassLoader() call in
GenericHelperFactory that is broken.  Good catch, valid bug.  Could
you please file this in jira?
done in https://issues.apache.org/jira/browse/OFBIZ-4335

have a nice weekend!
<https://issues.apache.org/jira/browse/OFBIZ-4335>

--Alexander

_____________________________________________________

Lusini GmbH
Alexander Reelsen, Research & Development
Adams-Lehmann-Straße 109, 80797 München

Telefon  +49-89-416 170 10
Telefax +49-89-416 170 190
E-Mail [hidden email]<mailto:[hidden email]>

Sitz der Gesellschaft: München,  HRB 188366,
Amtsgericht München, Geschäftsführer: Markus Bohl
USt IdNr. DE 270565360, Steuernr. 152/131/90056
_____________________________________________________