Hi
I have a very strange problem , that no one could explain me.
So here is the problem. I have a circular constructor dependency
between 2 classes 
I have no problems with this dependency in most cases , but there is
one environment ( my production environment
where it fails with this strange exception


java.lang.RuntimeException: Exception
        at
com.delver.util.ConcurrentUtils.getConcurrently(ConcurrentUtils.java:
72)
        at
com.delver.update.task.update.dedup.ProductDeduper.getConcurrently(ProductDeduper.java:
234)
        at
com.delver.update.task.update.dedup.ExternalProductIDDeduper.getProductsFromStorage(ExternalProductIDDeduper.java:
49)
        at
com.delver.update.task.update.dedup.ProductDeduper.dedupVsStorage(ProductDeduper.java:
114)
        at
com.delver.update.task.update.flows.AddedBuyingOptionsProcessor.process(AddedBuyingOptionsProcessor.java:
102)
        at
com.delver.update.task.update.CsvProcessor.processCsv(CsvProcessor.java:
116)
        at
com.delver.update.task.update.CsvSeedingUpdateTask.handlePartition(CsvSeedingUpdateTask.java:
222)
        at
com.delver.update.task.update.CsvSeedingUpdateTask.doUpdate(CsvSeedingUpdateTask.java:
94)
        at
com.delver.update.task.update.SeedingUpdateTask.doWork(SeedingUpdateTask.java:
78)
        at
com.delver.update.task.AbstractSeedingTask.run(AbstractSeedingTask.java:
86)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:
441)
        at java.util.concurrent.FutureTask
$Sync.innerRunAndReset(FutureTask.java:317)
        at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150)
        at java.util.concurrent.ScheduledThreadPoolExecutor
$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98)
        at java.util.concurrent.ScheduledThreadPoolExecutor
$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181)
        at java.util.concurrent.ScheduledThreadPoolExecutor
$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205)
        at java.util.concurrent.ThreadPoolExecutor
$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor
$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:619)
Caused by: java.util.concurrent.ExecutionException:
java.lang.IllegalStateException: This is a proxy used to support
circular references involving constructors. The object we're proxying
is not constructed yet. Please wait until after injection has
completed to use this object.
        at java.util.concurrent.FutureTask$Sync.innerGet(FutureTask.java:222)
        at java.util.concurrent.FutureTask.get(FutureTask.java:83)
        at
com.delver.util.ConcurrentUtils.getConcurrently(ConcurrentUtils.java:
65)
        ... 18 more
Caused by: java.lang.IllegalStateException: This is a proxy used to
support circular references involving constructors. The object we're
proxying is not constructed yet. Please wait until after injection has
completed to use this object.
        at com.google.inject.internal.ConstructionContext
$DelegatingInvocationHandler.invoke(ConstructionContext.java:100)
        at $Proxy20.getProductsCategories(Unknown Source)
        at
com.delver.persistence.repositories.products.ProductCategoriesHelper.addCategories(ProductCategoriesHelper.java:
43)
        at
com.delver.persistence.repositories.products.ProductPersistenceHelper._getBasicWithFullBO(ProductPersistenceHelper.java:
217)
        at
com.delver.persistence.repositories.products.ProductPersistenceHelper.getByIds(ProductPersistenceHelper.java:
978)
        at
com.delver.persistence.repositories.products.ProductPersistenceService.getProductsByBuyingOptionsExternalProductIds(ProductPersistenceService.java:
381)
        at com.delver.update.task.update.dedup.ExternalProductIDDeduper
$1.call(ExternalProductIDDeduper.java:53)
        at com.delver.update.task.update.dedup.ExternalProductIDDeduper
$1.call(ExternalProductIDDeduper.java:49)
        at com.delver.util.ConcurrentUtils$1.call(ConcurrentUtils.java:56)
        at com.delver.util.ConcurrentUtils$1.call(ConcurrentUtils.java:53)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        ... 3 more


Please ignore the whole stack trace , the interesting part is the last
one

So , I have in the place where there should be actual instance of the
object an some delegating  proxy to him , which i cannot understand
and it happens only in one environment.

Thanks for the help i really stuck on this one.

-- 
You received this message because you are subscribed to the Google Groups 
"google-guice" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-guice?hl=en.

Reply via email to