# River JDBC Structed Object Error

**URL:** <https://discuss.elastic.co/t/river-jdbc-structed-object-error/8887>\
**Category:** Elasticsearch\
**Created:** [August 29, 2012, 8:44pm UTC](https://discuss.elastic.co/t/river-jdbc-structed-object-error/8887 "2012-08-29T20:44:18Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Andy\_3](https://avatars.discourse-cdn.com/v4/letter/a/c57346/32.png) [@Andy\_3](https://discuss.elastic.co/u/Andy_3)\
**Post date:** [August 29, 2012, 8:44pm UTC](https://discuss.elastic.co/t/river-jdbc-structed-object-error/8887/1 "2012-08-29T20:44:18Z")

</div>

My JDBC River is not running when I try to use structured objects. The see  
my River below, I have basic person index and type, with id fields,  
firstName, and emails columns. The emails are 1 to many. When I limit the  
query to only people that have 1 email address, it works.

Any ideas?

I see this in the node logs,

[2012-08-29 15:26:16,098][INFO][org.elasticsearch.cluster.metadata]

> [mynode] [\_river] update\_mapping [person\_river] (dynamic)  
> [2012-08-29 15:26:16,160][ERROR][org.elasticsearch.river.jdbc] Can not  
> write a field name, expecting a value  
> org.elasticsearch.common.jackson.JsonGenerationException: Can not write a  
> field name, expecting a value  
> at  
> org.elasticsearch.common.jackson.impl.JsonGeneratorBase.\_reportError(JsonGeneratorBase.java:480)  
> at  
> org.elasticsearch.common.jackson.impl.Utf8Generator.writeFieldName(Utf8Generator.java:270)  
> at  
> org.elasticsearch.common.xcontent.json.JsonXContentGenerator.writeFieldName(JsonXContentGenerator.java:73)  
> at  
> org.elasticsearch.common.xcontent.XContentBuilder.field(XContentBuilder.java:262)  
> at org.elasticsearch.river.jdbc.Merger.build(Merger.java:303)  
> at org.elasticsearch.river.jdbc.Merger.build(Merger.java:309)  
> at org.elasticsearch.river.jdbc.Merger.flush(Merger.java:219)  
> at org.elasticsearch.river.jdbc.Merger.close(Merger.java:251)  
> at  
> org.elasticsearch.river.jdbc.JDBCRiver$JDBCConnector.run(JDBCRiver.java:203)  
> at java.lang.Thread.run(Unknown Source
> 
> Here is my River
> 
> {  
> "type" : "jdbc",  
> "jdbc" : {  
> "driver" : "oracle.jdbc.driver.OracleDriver",  
> "url" : "my\_url",  
> "user" : "myuser",  
> "password" : "mypass",  
> "sql" : "select p.PERSON\_ID as "\_id", p.PERSON\_ID as "id",  
> p.FIRSTNAME as "firstName", pe.email\_address as "person.emails" from  
> person p join person\_email pe on pe.person\_id = p.person\_id",  
> "poll": "72h",  
> "versioning": false  
> },  
> "index" : {  
> "index" : "people",  
> "type" : "person"  
> }  
> }

--

---

<div class="post-metadata">

**Author:** ![Andy\_3](https://avatars.discourse-cdn.com/v4/letter/a/c57346/32.png) [@Andy\_3](https://discuss.elastic.co/u/Andy_3)\
**Post date:** [August 29, 2012, 11:32pm UTC](https://discuss.elastic.co/t/river-jdbc-structed-object-error/8887/2 "2012-08-29T23:32:01Z")

</div>

I think I see the problem, the org.elasticsearch.river.jdbc.ValueSet class  
is wiping out my id.

For example,

```
    ValueSet firstRow = new ValueSet(null, "person1");
    System.out.println(firstRow);
    ValueSet secondRow = new ValueSet(firstRow, "person1");
    System.out.println(secondRow);

```

The secondRow value array is null.

I'll create a pull request.

--

---

<div class="post-metadata">

**Author:** ![11113](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/11113/32/2603_2.png) [@11113](https://discuss.elastic.co/u/11113)\
**Post date:** [November 15, 2012, 1:34am UTC](https://discuss.elastic.co/t/river-jdbc-structed-object-error/8887/3 "2012-11-15T01:34:18Z")

</div>

Hi Andy  
I have same issue, any idea?  
I did not see your pull request..

On Wednesday, August 29, 2012 4:32:01 PM UTC-7, Andy wrote:

> I think I see the problem, the org.elasticsearch.river.jdbc.ValueSet  
> class is wiping out my id.
> 
> For example,
> 
> ```
> ValueSet firstRow = new ValueSet(null, "person1");
> System.out.println(firstRow);
> ValueSet secondRow = new ValueSet(firstRow, "person1");
> System.out.println(secondRow);
> 
> ```
> 
> The secondRow value array is null.
> 
> I'll create a pull request.

--

---

<div class="post-metadata">

**Author:** ![Steve\_3](https://avatars.discourse-cdn.com/v4/letter/s/8e7dd6/32.png) [@Steve\_3](https://discuss.elastic.co/u/Steve_3)\
**Post date:** [November 15, 2012, 12:23pm UTC](https://discuss.elastic.co/t/river-jdbc-structed-object-error/8887/4 "2012-11-15T12:23:49Z")

</div>

Hi:

I'm also running into this issue: when exposing '\_id' in my query and  
trying to construct objects, I end up with the trace described below. When  
not using '\_id', everything works just fine.

Thanks!

For reference, the encountered trace is:

org.elasticsearch.common.jackson.JsonGenerationException: Can not write a  
field name, expecting a value  
at  
org.elasticsearch.common.jackson.impl.JsonGeneratorBase.\_reportError(JsonGeneratorBase.java:480)  
at  
org.elasticsearch.common.jackson.impl.Utf8Generator.writeFieldName(Utf8Generator.java:270)  
at  
org.elasticsearch.common.xcontent.json.JsonXContentGenerator.writeFieldName(JsonXContentGenerator.java:73)  
at  
org.elasticsearch.common.xcontent.XContentBuilder.field(XContentBuilder.java:262)  
at org.elasticsearch.river.jdbc.Merger.build(Merger.java:313)  
at org.elasticsearch.river.jdbc.Merger.flush(Merger.java:226)  
at org.elasticsearch.river.jdbc.Merger.row(Merger.java:195)  
at org.elasticsearch.river.jdbc.SQLService.processRow(SQLService.java:771)  
at org.elasticsearch.river.jdbc.SQLService.nextRow(SQLService.java:191)  
at  
org.elasticsearch.river.jdbc.JDBCRiver$JDBCConnector.run(JDBCRiver.java:201)  
at java.lang.Thread.run(Thread.java:680)

--

---

<div class="post-metadata">

**Author:** ![jprante](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/jprante/32/44941_2.png) [@jprante](https://discuss.elastic.co/u/jprante)\
**Post date:** [November 15, 2012, 1:56pm UTC](https://discuss.elastic.co/t/river-jdbc-structed-object-error/8887/5 "2012-11-15T13:56:06Z")

</div>

Warm thanks to all for trying the JDBC river!

A note, I would welcome you to enter the issues into the github issue  
tracker at [GitHub - jprante/elasticsearch-jdbc: JDBC importer for Elasticsearch](https://github.com/jprante/elasticsearch-river-jdbc) so I can  
make substantial progress on them - the next version is overdue. Pull  
requests, patches, test cases, wiki docs are very welcome!

Cheers,

Jörg

On Thursday, November 15, 2012 1:23:50 PM UTC+1, cubic1271 wrote:

> Hi:
> 
> I'm also running into this issue: when exposing '\_id' in my query and  
> trying to construct objects, I end up with the trace described below. When  
> not using '\_id', everything works just fine.
> 
> Thanks!
> 
> For reference, the encountered trace is:
> 
> org.elasticsearch.common.jackson.JsonGenerationException: Can not write a  
> field name, expecting a value  
> at  
> org.elasticsearch.common.jackson.impl.JsonGeneratorBase.\_reportError(JsonGeneratorBase.java:480)  
> at  
> org.elasticsearch.common.jackson.impl.Utf8Generator.writeFieldName(Utf8Generator.java:270)  
> at  
> org.elasticsearch.common.xcontent.json.JsonXContentGenerator.writeFieldName(JsonXContentGenerator.java:73)  
> at  
> org.elasticsearch.common.xcontent.XContentBuilder.field(XContentBuilder.java:262)  
> at org.elasticsearch.river.jdbc.Merger.build(Merger.java:313)  
> at org.elasticsearch.river.jdbc.Merger.flush(Merger.java:226)  
> at org.elasticsearch.river.jdbc.Merger.row(Merger.java:195)  
> at org.elasticsearch.river.jdbc.SQLService.processRow(SQLService.java:771)  
> at org.elasticsearch.river.jdbc.SQLService.nextRow(SQLService.java:191)  
> at  
> org.elasticsearch.river.jdbc.JDBCRiver$JDBCConnector.run(JDBCRiver.java:201)  
> at java.lang.Thread.run(Thread.java:680)

--

---

<div class="post-metadata">

**Author:** ![Steve\_3](https://avatars.discourse-cdn.com/v4/letter/s/8e7dd6/32.png) [@Steve\_3](https://discuss.elastic.co/u/Steve_3)\
**Post date:** [November 15, 2012, 2:20pm UTC](https://discuss.elastic.co/t/river-jdbc-structed-object-error/8887/6 "2012-11-15T14:20:37Z")

</div>

Will do. Thanks much!

On Thursday, November 15, 2012 8:56:07 AM UTC-5, Jörg Prante wrote:

> Warm thanks to all for trying the JDBC river!
> 
> A note, I would welcome you to enter the issues into the github issue  
> tracker at [GitHub - jprante/elasticsearch-jdbc: JDBC importer for Elasticsearch](https://github.com/jprante/elasticsearch-river-jdbc) so I can  
> make substantial progress on them - the next version is overdue. Pull  
> requests, patches, test cases, wiki docs are very welcome!
> 
> Cheers,
> 
> Jörg
> 
> On Thursday, November 15, 2012 1:23:50 PM UTC+1, cubic1271 wrote:
> 
> > Hi:
> > 
> > I'm also running into this issue: when exposing '\_id' in my query and  
> > trying to construct objects, I end up with the trace described below. When  
> > not using '\_id', everything works just fine.
> > 
> > Thanks!
> > 
> > For reference, the encountered trace is:
> > 
> > org.elasticsearch.common.jackson.JsonGenerationException: Can not write a  
> > field name, expecting a value  
> > at  
> > org.elasticsearch.common.jackson.impl.JsonGeneratorBase.\_reportError(JsonGeneratorBase.java:480)  
> > at  
> > org.elasticsearch.common.jackson.impl.Utf8Generator.writeFieldName(Utf8Generator.java:270)  
> > at  
> > org.elasticsearch.common.xcontent.json.JsonXContentGenerator.writeFieldName(JsonXContentGenerator.java:73)  
> > at  
> > org.elasticsearch.common.xcontent.XContentBuilder.field(XContentBuilder.java:262)  
> > at org.elasticsearch.river.jdbc.Merger.build(Merger.java:313)  
> > at org.elasticsearch.river.jdbc.Merger.flush(Merger.java:226)  
> > at org.elasticsearch.river.jdbc.Merger.row(Merger.java:195)  
> > at org.elasticsearch.river.jdbc.SQLService.processRow(SQLService.java:771)  
> > at org.elasticsearch.river.jdbc.SQLService.nextRow(SQLService.java:191)  
> > at  
> > org.elasticsearch.river.jdbc.JDBCRiver$JDBCConnector.run(JDBCRiver.java:201)  
> > at java.lang.Thread.run(Thread.java:680)

--

---

<div class="post-metadata">

**Author:** ![system](https://us1.discourse-cdn.com/elastic/original/3X/1/a/1ac57faf039f6b580b3f104ef42a2a89e41014de.png) [@system](https://discuss.elastic.co/u/system)\
**Post date:** [July 6, 2017, 3:04am UTC](https://discuss.elastic.co/t/river-jdbc-structed-object-error/8887/7 "2017-07-06T03:04:08Z")

</div>


