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.