2016-10-05 1 views
0

Мы используем XContentBuilder следующим образом она бросает NullPointerExceptionИсключение нулевого указателя в то время как с помощью elasticsearch использования XContentBuilder

private int count=0; 
public void outerCall(){ 
     XContentBuilder contentBuilder = jsonBuilder(); 
     contentBuilder.startObject(); 
     contentBuilder.field("key1", "value1"); 
     contentBuilder.field("key2", "value2"); 
     innerCall(contentBuilder, 0); 
     contentBuilder.field("key3", "value3"); 
     contentBuilder.close(); 
     log.info("OUTER "+contentBuilder.string()); 

} 


private XContentBuilder innerCall(XContentBuilder contentBuilder, int count2) throws Exception{ 

    //XContentBuilder contentBuilder = jsonBuilder().startObject(); 

    contentBuilder.startArray("specifications"); 
    contentBuilder.startObject(); 
    contentBuilder.field("key", "value"); 

    if(count<2){ 
     innerCall(contentBuilder, count++); 
    } 
    else{ 
     contentBuilder.endObject().endArray().endObject(); 
     return contentBuilder;   
    } 
    log.info(contentBuilder.string()); 
    return contentBuilder; 
} 

это образец кода и адресности NPE в contentBuilder.field («Key3», «Value3»);

если пытаетесь отладить код Получение NPE на contentBuilder.field («ключ», «значение»);

помочь мне решить эту проблему ..

+1

ПУБЛИКАЦИЯ трассировки стека. – jay

ответ

0

метод Изменить код:

private XContentBuilder innerCall(XContentBuilder contentBuilder, int count2) throws Exception{ 

    //XContentBuilder contentBuilder = jsonBuilder().startObject(); 

    contentBuilder.startArray("specifications"); 
    contentBuilder.startObject(); 
    contentBuilder.field("key", "value"); 

    if(count<2){ 
     innerCall(contentBuilder, count++); 
    } else { 
     log.info(contentBuilder.string()); 
    } 
    contentBuilder.endObject().endArray().endObject(); 
    return contentBuilder; 
} 
Смежные вопросы