We had a similar issue with a plugin regarding this. I found the solution here on this post from 2012: http://elasticsearch-users.115913.n3.nabble.com/Running-ES-Client-inside-ES-Plugin-td3925864.html
Injecting the client in setClient was throwing the AllocationService circular dependency exception. Changing it to retrieve from injector solved the issue. On Monday, November 17, 2014 at 8:52:34 PM UTC-6, Deepak wrote: > > Hi, > > After upgrading to ES 1.4, integration tests for our ES plugin started > failing. The plugin works fine when deployed directly to ES. The issue > seems to be only with integration tests which extend > ElasticsearchIntegrationTest class. > > I have uploaded sample project to recreate the issue @ > https://github.com/dr2014/ES1.4_IntegrationTest_Issue > > There seems to be some problem with how Guice injects Client when > integration tests are executed. > > Any ideas as to how to resolve this issue? > > Thanks, > Deepak > > Partial stacktrace: > > org.elasticsearch.common.inject.CreationException: Guice creation errors: > > 1) Tried proxying org.elasticsearch.discovery.DiscoveryService to support > a circular dependency, but it is not an interface. > while locating org.elasticsearch.discovery.DiscoveryService > for parameter 7 at > org.elasticsearch.discovery.local.LocalDiscovery.<init>(Unknown Source) > while locating org.elasticsearch.discovery.local.LocalDiscovery > while locating org.elasticsearch.discovery.Discovery > for parameter 2 at > org.elasticsearch.discovery.DiscoveryService.<init>(Unknown Source) > while locating org.elasticsearch.discovery.DiscoveryService > for parameter 1 at > org.elasticsearch.cluster.service.InternalClusterService.<init>(Unknown > Source) > while locating org.elasticsearch.cluster.service.InternalClusterService > while locating org.elasticsearch.cluster.ClusterService > for parameter 2 at > org.elasticsearch.action.admin.indices.open.TransportOpenIndexAction.<init>(Unknown > > Source) > while locating > org.elasticsearch.action.admin.indices.open.TransportOpenIndexAction > while locating org.elasticsearch.action.support.TransportAction > annotated with > @org.elasticsearch.common.inject.multibindings.Element(setName=,uniqueId=305) > at _unknown_ > while locating java.util.Map<org.elasticsearch.action.GenericAction, > org.elasticsearch.action.support.TransportAction> > for parameter 1 at > org.elasticsearch.client.node.NodeClusterAdminClient.<init>(Unknown Source) > while locating org.elasticsearch.client.node.NodeClusterAdminClient > for parameter 1 at > org.elasticsearch.client.node.NodeAdminClient.<init>(Unknown Source) > while locating org.elasticsearch.client.node.NodeAdminClient > for parameter 2 at > org.elasticsearch.client.node.NodeClient.<init>(Unknown Source) > while locating org.elasticsearch.client.node.NodeClient > while locating org.elasticsearch.client.Client > for parameter 2 at com.tr.es.plugin.TestESRestHandler.<init>(Unknown > Source) > while locating com.tr.es.plugin.TestESRestHandler > > 2) Error injecting constructor, 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 org.elasticsearch.cluster.InternalClusterInfoService.<init>(Unknown > Source) > while locating org.elasticsearch.cluster.InternalClusterInfoService > while locating org.elasticsearch.cluster.ClusterInfoService > for parameter 3 at > org.elasticsearch.cluster.routing.allocation.AllocationService.<init>(Unknown > Source) > while locating > org.elasticsearch.cluster.routing.allocation.AllocationService > for parameter 2 at > -- You received this message because you are subscribed to the Google Groups "elasticsearch" group. To unsubscribe from this group and stop receiving emails from it, send an email to elasticsearch+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/elasticsearch/5caebd06-cda7-47ee-95bc-42a24d6446bc%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.