NouchFieldError causes elasticsearch Java library to quit working [java.lang.NoSuchFieldError: LUCENE_31]


(niiamon) #1

Hi,

I recently moved up from 0.15.2 to 0.16.0. I am testing out my old
code using the new 0.16.0 Java library in my Play application. I am
able to create indices, add a mapping and index some stuff but when I
am searching, I get the error below and then the library becomes
unresponsive (the current request that crashed fails to return and the
page is hanging waiting for a response from the server). This is the
code I'm using to search:

try {
XContentBuilder jsonBuilder =
XContentFactory.jsonBuilder();
Client client = ElasticSearch.getInstance().getClient();

        System.out.println("BEFORE SEARCHING");

        SearchResponse response = client.prepareSearch("rb")
            .setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
            .setQuery(QueryBuilders.fieldQuery("tags", tags))
            .setFrom(0).setSize(60).setExplain(true)
            .execute()
            .actionGet();

        System.out.println("GOT HERE");
        SearchHit[] hits = response.getHits().getHits();
        System.out.println("GOT " + hits.length + " HITS");
        for(SearchHit hit : hits) {
            System.out.println("ITERATING: " + hit.getId() + " : "
  • hit.sourceAsString());

results.add(ResourceBundle.fromJson(hit.sourceAsString()));
}
} catch(IOException ioe) {
// result = "Something very bad happened!";
ioe.printStackTrace();
} catch (NoSuchFieldError nsfe) {
System.out.println("NoSuchFieldError: " +
nsfe.getMessage());
nsfe.printStackTrace();
}

Only the "BEFORE SEARCHING" is printed which means that the
SearchResponse line is what chokes up. My stack trace is below:

05:33:57,176 WARN ~ [Marvel Girl] Exception caught on netty layer
[[id: 0x29f40a61, /127.0.0.1:61450 => /127.0.0.1:9301]]
java.lang.NoSuchFieldError: LUCENE_31
at org.elasticsearch.common.lucene.Lucene.(Lucene.java:48)
at
org.elasticsearch.search.internal.InternalSearchHit.readFrom(InternalSearchHit.java:
420)
at
org.elasticsearch.search.internal.InternalSearchHit.readSearchHit(InternalSearchHit.java:
401)
at
org.elasticsearch.search.internal.InternalSearchHits.readFrom(InternalSearchHits.java:
211)
at
org.elasticsearch.search.internal.InternalSearchHits.readFrom(InternalSearchHits.java:
191)
at
org.elasticsearch.search.internal.InternalSearchHits.readSearchHits(InternalSearchHits.java:
186)
at
org.elasticsearch.search.internal.InternalSearchResponse.readFrom(InternalSearchResponse.java:
82)
at
org.elasticsearch.search.internal.InternalSearchResponse.readInternalSearchResponse(InternalSearchResponse.java:
77)
at
org.elasticsearch.action.search.SearchResponse.readFrom(SearchResponse.java:
263)
at
org.elasticsearch.transport.netty.MessageChannelHandler.handleResponse(MessageChannelHandler.java:
122)
at
org.elasticsearch.transport.netty.MessageChannelHandler.messageReceived(MessageChannelHandler.java:
101)
at
org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:
80)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:
545)
at org.elasticsearch.common.netty.channel.DefaultChannelPipeline
$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:
754)
at
org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:
302)
at
org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:
317)
at
org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:
299)
at
org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:
216)
at
org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:
80)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:
545)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:
540)
at
org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:
274)
at
org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:
261)
at
org.elasticsearch.common.netty.channel.socket.nio.NioWorker.read(NioWorker.java:
349)
at
org.elasticsearch.common.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:
280)
at
org.elasticsearch.common.netty.channel.socket.nio.NioWorker.run(NioWorker.java:
200)
at
org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:
108)
at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker
$1.run(DeadLockProofWorker.java:44)
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:680)

Anybody knows what this means and how I can get over it?

many thanks
nii amon


(Shay Banon) #2

Are you sure you updated the Lucene jars to 3.1?
On Wednesday, May 4, 2011 at 8:41 AM, niiamon wrote:

Hi,

I recently moved up from 0.15.2 to 0.16.0. I am testing out my old
code using the new 0.16.0 Java library in my Play application. I am
able to create indices, add a mapping and index some stuff but when I
am searching, I get the error below and then the library becomes
unresponsive (the current request that crashed fails to return and the
page is hanging waiting for a response from the server). This is the
code I'm using to search:

try {
XContentBuilder jsonBuilder =
XContentFactory.jsonBuilder();
Client client = ElasticSearch.getInstance().getClient();

System.out.println("BEFORE SEARCHING");

SearchResponse response = client.prepareSearch("rb")
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setQuery(QueryBuilders.fieldQuery("tags", tags))
.setFrom(0).setSize(60).setExplain(true)
.execute()
.actionGet();

System.out.println("GOT HERE");
SearchHit[] hits = response.getHits().getHits();
System.out.println("GOT " + hits.length + " HITS");
for(SearchHit hit : hits) {
System.out.println("ITERATING: " + hit.getId() + " : "

  • hit.sourceAsString());

results.add(ResourceBundle.fromJson(hit.sourceAsString()));
}
} catch(IOException ioe) {
// result = "Something very bad happened!";
ioe.printStackTrace();
} catch (NoSuchFieldError nsfe) {
System.out.println("NoSuchFieldError: " +
nsfe.getMessage());
nsfe.printStackTrace();
}

Only the "BEFORE SEARCHING" is printed which means that the
SearchResponse line is what chokes up. My stack trace is below:

05:33:57,176 WARN ~ [Marvel Girl] Exception caught on netty layer
[[id: 0x29f40a61, /127.0.0.1:61450 => /127.0.0.1:9301]]
java.lang.NoSuchFieldError: LUCENE_31
at org.elasticsearch.common.lucene.Lucene.(Lucene.java:48)
at
org.elasticsearch.search.internal.InternalSearchHit.readFrom(InternalSearchHit.java:
420)
at
org.elasticsearch.search.internal.InternalSearchHit.readSearchHit(InternalSearchHit.java:
401)
at
org.elasticsearch.search.internal.InternalSearchHits.readFrom(InternalSearchHits.java:
211)
at
org.elasticsearch.search.internal.InternalSearchHits.readFrom(InternalSearchHits.java:
191)
at
org.elasticsearch.search.internal.InternalSearchHits.readSearchHits(InternalSearchHits.java:
186)
at
org.elasticsearch.search.internal.InternalSearchResponse.readFrom(InternalSearchResponse.java:
82)
at
org.elasticsearch.search.internal.InternalSearchResponse.readInternalSearchResponse(InternalSearchResponse.java:
77)
at
org.elasticsearch.action.search.SearchResponse.readFrom(SearchResponse.java:
263)
at
org.elasticsearch.transport.netty.MessageChannelHandler.handleResponse(MessageChannelHandler.java:
122)
at
org.elasticsearch.transport.netty.MessageChannelHandler.messageReceived(MessageChannelHandler.java:
101)
at
org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:
80)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:
545)
at org.elasticsearch.common.netty.channel.DefaultChannelPipeline
$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:
754)
at
org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:
302)
at
org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.unfoldAndFireMessageReceived(FrameDecoder.java:
317)
at
org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.callDecode(FrameDecoder.java:
299)
at
org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.messageReceived(FrameDecoder.java:
216)
at
org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleUpstream(SimpleChannelUpstreamHandler.java:
80)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:
545)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream(DefaultChannelPipeline.java:
540)
at
org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:
274)
at
org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channels.java:
261)
at
org.elasticsearch.common.netty.channel.socket.nio.NioWorker.read(NioWorker.java:
349)
at
org.elasticsearch.common.netty.channel.socket.nio.NioWorker.processSelectedKeys(NioWorker.java:
280)
at
org.elasticsearch.common.netty.channel.socket.nio.NioWorker.run(NioWorker.java:
200)
at
org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:
108)
at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker
$1.run(DeadLockProofWorker.java:44)
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:680)

Anybody knows what this means and how I can get over it?

many thanks
nii amon


(niiamon) #3

No. I'm still at lucene-core-2.9.3.jar. I will move up to 3.1 and
revert.

Thanks
nii amon

On May 4, 6:46 am, Shay Banon shay.ba...@elasticsearch.com wrote:

Are you sure you updated the Lucene jars to 3.1?

On Wednesday, May 4, 2011 at 8:41 AM, niiamon wrote:

Hi,

I recently moved up from 0.15.2 to 0.16.0. I am testing out my old
code using the new 0.16.0 Java library in my Play application. I am
able to create indices, add a mapping and index some stuff but when I
am searching, I get the error below and then the library becomes
unresponsive (the current request that crashed fails to return and the
page is hanging waiting for a response from the server). This is the
code I'm using to search:

try {
XContentBuilder jsonBuilder =
XContentFactory.jsonBuilder();
Client client = ElasticSearch.getInstance().getClient();

System.out.println("BEFORE SEARCHING");

SearchResponse response = client.prepareSearch("rb")
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setQuery(QueryBuilders.fieldQuery("tags", tags))
.setFrom(0).setSize(60).setExplain(true)
.execute()
.actionGet();

System.out.println("GOT HERE");
SearchHit[] hits = response.getHits().getHits();
System.out.println("GOT " + hits.length + " HITS");
for(SearchHit hit : hits) {
System.out.println("ITERATING: " + hit.getId() + " : "

  • hit.sourceAsString());

results.add(ResourceBundle.fromJson(hit.sourceAsString()));
}
} catch(IOException ioe) {
// result = "Something very bad happened!";
ioe.printStackTrace();
} catch (NoSuchFieldError nsfe) {
System.out.println("NoSuchFieldError: " +
nsfe.getMessage());
nsfe.printStackTrace();
}

Only the "BEFORE SEARCHING" is printed which means that the
SearchResponse line is what chokes up. My stack trace is below:

05:33:57,176 WARN ~ [Marvel Girl] Exception caught on netty layer
[[id: 0x29f40a61, /127.0.0.1:61450 => /127.0.0.1:9301]]
java.lang.NoSuchFieldError: LUCENE_31
at org.elasticsearch.common.lucene.Lucene.(Lucene.java:48)
at
org.elasticsearch.search.internal.InternalSearchHit.readFrom(InternalSearch Hit.java:
420)
at
org.elasticsearch.search.internal.InternalSearchHit.readSearchHit(InternalS earchHit.java:
401)
at
org.elasticsearch.search.internal.InternalSearchHits.readFrom(InternalSearc hHits.java:
211)
at
org.elasticsearch.search.internal.InternalSearchHits.readFrom(InternalSearc hHits.java:
191)
at
org.elasticsearch.search.internal.InternalSearchHits.readSearchHits(Interna lSearchHits.java:
186)
at
org.elasticsearch.search.internal.InternalSearchResponse.readFrom(InternalS earchResponse.java:
82)
at
org.elasticsearch.search.internal.InternalSearchResponse.readInternalSearch Response(InternalSearchResponse.java:
77)
at
org.elasticsearch.action.search.SearchResponse.readFrom(SearchResponse.java :
263)
at
org.elasticsearch.transport.netty.MessageChannelHandler.handleResponse(Mess ageChannelHandler.java:
122)
at
org.elasticsearch.transport.netty.MessageChannelHandler.messageReceived(Mes sageChannelHandler.java:
101)
at
org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleU pstream(SimpleChannelUpstreamHandler.java:
80)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream( DefaultChannelPipeline.java:
545)
at org.elasticsearch.common.netty.channel.DefaultChannelPipeline
$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:
754)
at
org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channel s.java:
302)
at
org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.unfoldAndFi reMessageReceived(FrameDecoder.java:
317)
at
org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.callDecode( FrameDecoder.java:
299)
at
org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.messageRece ived(FrameDecoder.java:
216)
at
org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleU pstream(SimpleChannelUpstreamHandler.java:
80)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream( DefaultChannelPipeline.java:
545)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream( DefaultChannelPipeline.java:
540)
at
org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channel s.java:
274)
at
org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channel s.java:
261)
at
org.elasticsearch.common.netty.channel.socket.nio.NioWorker.read(NioWorker. java:
349)
at
org.elasticsearch.common.netty.channel.socket.nio.NioWorker.processSelected Keys(NioWorker.java:
280)
at
org.elasticsearch.common.netty.channel.socket.nio.NioWorker.run(NioWorker.j ava:
200)
at
org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenami ngRunnable.java:
108)
at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker
$1.run(DeadLockProofWorker.java:44)
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:680)

Anybody knows what this means and how I can get over it?

many thanks
nii amon


(niiamon) #4

That fixed things up right nice!

Much thanks man
nii amon

On May 4, 6:51 am, niiamon jaz...@gmail.com wrote:

No. I'm still at lucene-core-2.9.3.jar. I will move up to 3.1 and
revert.

Thanks
nii amon

On May 4, 6:46 am, Shay Banon shay.ba...@elasticsearch.com wrote:

Are you sure you updated the Lucene jars to 3.1?

On Wednesday, May 4, 2011 at 8:41 AM, niiamon wrote:

Hi,

I recently moved up from 0.15.2 to 0.16.0. I am testing out my old
code using the new 0.16.0 Java library in my Play application. I am
able to create indices, add a mapping and index some stuff but when I
am searching, I get the error below and then the library becomes
unresponsive (the current request that crashed fails to return and the
page is hanging waiting for a response from the server). This is the
code I'm using to search:

try {
XContentBuilder jsonBuilder =
XContentFactory.jsonBuilder();
Client client = ElasticSearch.getInstance().getClient();

System.out.println("BEFORE SEARCHING");

SearchResponse response = client.prepareSearch("rb")
.setSearchType(SearchType.DFS_QUERY_THEN_FETCH)
.setQuery(QueryBuilders.fieldQuery("tags", tags))
.setFrom(0).setSize(60).setExplain(true)
.execute()
.actionGet();

System.out.println("GOT HERE");
SearchHit[] hits = response.getHits().getHits();
System.out.println("GOT " + hits.length + " HITS");
for(SearchHit hit : hits) {
System.out.println("ITERATING: " + hit.getId() + " : "

  • hit.sourceAsString());

results.add(ResourceBundle.fromJson(hit.sourceAsString()));
}
} catch(IOException ioe) {
// result = "Something very bad happened!";
ioe.printStackTrace();
} catch (NoSuchFieldError nsfe) {
System.out.println("NoSuchFieldError: " +
nsfe.getMessage());
nsfe.printStackTrace();
}

Only the "BEFORE SEARCHING" is printed which means that the
SearchResponse line is what chokes up. My stack trace is below:

05:33:57,176 WARN ~ [Marvel Girl] Exception caught on netty layer
[[id: 0x29f40a61, /127.0.0.1:61450 => /127.0.0.1:9301]]
java.lang.NoSuchFieldError: LUCENE_31
at org.elasticsearch.common.lucene.Lucene.(Lucene.java:48)
at
org.elasticsearch.search.internal.InternalSearchHit.readFrom(InternalSearch Hit.java:
420)
at
org.elasticsearch.search.internal.InternalSearchHit.readSearchHit(InternalS earchHit.java:
401)
at
org.elasticsearch.search.internal.InternalSearchHits.readFrom(InternalSearc hHits.java:
211)
at
org.elasticsearch.search.internal.InternalSearchHits.readFrom(InternalSearc hHits.java:
191)
at
org.elasticsearch.search.internal.InternalSearchHits.readSearchHits(Interna lSearchHits.java:
186)
at
org.elasticsearch.search.internal.InternalSearchResponse.readFrom(InternalS earchResponse.java:
82)
at
org.elasticsearch.search.internal.InternalSearchResponse.readInternalSearch Response(InternalSearchResponse.java:
77)
at
org.elasticsearch.action.search.SearchResponse.readFrom(SearchResponse.java :
263)
at
org.elasticsearch.transport.netty.MessageChannelHandler.handleResponse(Mess ageChannelHandler.java:
122)
at
org.elasticsearch.transport.netty.MessageChannelHandler.messageReceived(Mes sageChannelHandler.java:
101)
at
org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleU pstream(SimpleChannelUpstreamHandler.java:
80)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream( DefaultChannelPipeline.java:
545)
at org.elasticsearch.common.netty.channel.DefaultChannelPipeline
$DefaultChannelHandlerContext.sendUpstream(DefaultChannelPipeline.java:
754)
at
org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channel s.java:
302)
at
org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.unfoldAndFi reMessageReceived(FrameDecoder.java:
317)
at
org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.callDecode( FrameDecoder.java:
299)
at
org.elasticsearch.common.netty.handler.codec.frame.FrameDecoder.messageRece ived(FrameDecoder.java:
216)
at
org.elasticsearch.common.netty.channel.SimpleChannelUpstreamHandler.handleU pstream(SimpleChannelUpstreamHandler.java:
80)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream( DefaultChannelPipeline.java:
545)
at
org.elasticsearch.common.netty.channel.DefaultChannelPipeline.sendUpstream( DefaultChannelPipeline.java:
540)
at
org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channel s.java:
274)
at
org.elasticsearch.common.netty.channel.Channels.fireMessageReceived(Channel s.java:
261)
at
org.elasticsearch.common.netty.channel.socket.nio.NioWorker.read(NioWorker. java:
349)
at
org.elasticsearch.common.netty.channel.socket.nio.NioWorker.processSelected Keys(NioWorker.java:
280)
at
org.elasticsearch.common.netty.channel.socket.nio.NioWorker.run(NioWorker.j ava:
200)
at
org.elasticsearch.common.netty.util.ThreadRenamingRunnable.run(ThreadRenami ngRunnable.java:
108)
at org.elasticsearch.common.netty.util.internal.DeadLockProofWorker
$1.run(DeadLockProofWorker.java:44)
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:680)

Anybody knows what this means and how I can get over it?

many thanks
nii amon


(system) #5