# JDBC input, kafka output, syntax error, unexpected end-of-file Java:: after pipeline starts

**URL:** <https://discuss.elastic.co/t/jdbc-input-kafka-output-syntax-error-unexpected-end-of-file-java-after-pipeline-starts/294452>\
**Category:** Logstash\
**Created:** [January 14, 2022, 8:54pm UTC](https://discuss.elastic.co/t/jdbc-input-kafka-output-syntax-error-unexpected-end-of-file-java-after-pipeline-starts/294452 "2022-01-14T20:54:38Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![rschmerb](https://avatars.discourse-cdn.com/v4/letter/r/8c91f0/32.png) [@rschmerb](https://discuss.elastic.co/u/rschmerb)\
**Post date:** [January 14, 2022, 8:54pm UTC](https://discuss.elastic.co/t/jdbc-input-kafka-output-syntax-error-unexpected-end-of-file-java-after-pipeline-starts/294452/1 "2022-01-14T20:54:38Z")

</div>

We are seeing the following error messages after starting our pipeline:

```auto
[2022-01-13T19:48:06,009][FATAL][org.logstash.Logstash] Logstash stopped processing because of an error: (SyntaxError) (eval):1: syntax error, unexpected end-of-file

Java::

```

We did not have this issue in 7.6.2 but are seeing it after 7.16.2/3 upgrade. Full error scrape below:

```auto
2022-01-13T19:48:05,769][INFO][logstash.agent] Pipelines running {:count=>2, :running_pipelines=>[:p_sltdb_jdbc, :p_sltdb_jdbc_metrics], :non_running_pipelines=>[]}

[2022-01-13T19:48:06,009][FATAL][org.logstash.Logstash] Logstash stopped processing because of an error: (SyntaxError) (eval):1: syntax error, unexpected end-of-file

Java::

   ^

org.jruby.exceptions.SyntaxError: (SyntaxError) (eval):1: syntax error, unexpected end-of-file

Java::

   ^

    at org.jruby.RubyKernel.eval(org/jruby/RubyKernel.java:1048) ~[jruby-complete-9.2.20.1.jar:?]

    at usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.sequel_minus_5_dot_51_dot_0.lib.sequel.adapters.jdbc.load_driver(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/sequel-5.51.0/lib/sequel/adapters/jdbc.rb:55) ~[?:?]

    at usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.logstash_minus_integration_minus_jdbc_minus_5_dot_1_dot_8.lib.logstash.plugin_mixins.jdbc.common.load_driver(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-integration-jdbc-5.1.8/lib/logstash/plugin_mixins/jdbc/common.rb:33) ~[?:?]

    at usr.share.logstash.vendor.bundle.jruby.$2_dot_5_dot_0.gems.logstash_minus_integration_minus_jdbc_minus_5_dot_1_dot_8.lib.logstash.inputs.jdbc.run(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/logstash-integration-jdbc-5.1.8/lib/logstash/inputs/jdbc.rb:294) ~[?:?]

```

---

<div class="post-metadata">

**Author:** ![Badger](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/badger/32/25190_2.png) [@Badger](https://discuss.elastic.co/u/Badger)\
**Post date:** [January 14, 2022, 9:16pm UTC](https://discuss.elastic.co/t/jdbc-input-kafka-output-syntax-error-unexpected-end-of-file-java-after-pipeline-starts/294452/2 "2022-01-14T21:16:09Z")

</div>

> unexpected end-of-file ... at usr.share.logstash.vendor.bundle.jruby.$2\_dot\_5\_dot\_0.gems.sequel\_minus\_5\_dot\_51\_dot\_0.lib.sequel.adapters.jdbc.load\_driver(/usr/share/logstash/vendor/bundle/jruby/2.5.0/gems/sequel-5.51.0/lib/sequel/adapters/jdbc.rb:55)

That is [here](https://github.com/jeremyevans/sequel/blob/58dd8d6e17d86cbf8809467c339be59aad54d5bf/lib/sequel/adapters/jdbc.rb#L55). If you are using a jdbc input then it is evaluating the jdbc\_driver\_class option string, expecting JRuby to auto-load it. I cannot tell you any more than that.

---

<div class="post-metadata">

**Author:** ![rschmerb](https://avatars.discourse-cdn.com/v4/letter/r/8c91f0/32.png) [@rschmerb](https://discuss.elastic.co/u/rschmerb)\
**Post date:** [January 15, 2022, 2:12am UTC](https://discuss.elastic.co/t/jdbc-input-kafka-output-syntax-error-unexpected-end-of-file-java-after-pipeline-starts/294452/3 "2022-01-15T02:12:28Z")

</div>

Any thoughts on why the same config file would work in 7.6.2 but fail in 7.16.2/3 ?  
Your input is much appreciated of course,  
Rob

---

<div class="post-metadata">

**Author:** ![rschmerb](https://avatars.discourse-cdn.com/v4/letter/r/8c91f0/32.png) [@rschmerb](https://discuss.elastic.co/u/rschmerb)\
**Post date:** [January 15, 2022, 2:30am UTC](https://discuss.elastic.co/t/jdbc-input-kafka-output-syntax-error-unexpected-end-of-file-java-after-pipeline-starts/294452/4 "2022-01-15T02:30:00Z")

</div>

Found a note attached to the jdbc\_driver\_class option [here](https://www.elastic.co/guide/en/logstash/current/plugins-inputs-jdbc.html#plugins-inputs-jdbc-jdbc_driver_class) that specifies you _may_ have to add Java:: to a jdbc\_driver\_class entry. I find it odd that it would start failing with a similar message after updating to new version.

Also, to validate, `jdbc_driver_class => ""` is an acceptable entry in the config when `jdbc_driver_library => "/etc/logstash/jtds-1.3.1.jar"`

Thanks again,  
Rob

---

<div class="post-metadata">

**Author:** ![Badger](https://sea2.discourse-cdn.com/elastic/user_avatar/discuss.elastic.co/badger/32/25190_2.png) [@Badger](https://discuss.elastic.co/u/Badger)\
**Post date:** [January 15, 2022, 2:34am UTC](https://discuss.elastic.co/t/jdbc-input-kafka-output-syntax-error-unexpected-end-of-file-java-after-pipeline-starts/294452/5 "2022-01-15T02:34:59Z")

</div>

> [@rschmerb](#):
>
> Any thoughts on why the same config file would work in 7.6.2 but fail in 7.16.2/3 ?

7.6 did not bundle a JDK, but 7.16 does. That means you could be using a different Java version and conceivably even a different Java vendor.

I cannot speak to your other question.

---

<div class="post-metadata">

**Author:** ![rschmerb](https://avatars.discourse-cdn.com/v4/letter/r/8c91f0/32.png) [@rschmerb](https://discuss.elastic.co/u/rschmerb)\
**Post date:** [January 26, 2022, 6:58pm UTC](https://discuss.elastic.co/t/jdbc-input-kafka-output-syntax-error-unexpected-end-of-file-java-after-pipeline-starts/294452/6 "2022-01-26T18:58:56Z")

</div>

Hello,  
We have performed the following:  
Change the parameter in  
`/etc/logstash/startup.options`  
from: `#JAVACMD=/usr/bin/java`  
to: `JAVACMD=/bin/java`

Where:

```auto
# which java
/bin/java

# ls -la /bin/java
lrwxrwxrwx 1 root root 22 Jan 8 05:37 /bin/java -> /etc/alternatives/java

# ls -la /etc/alternatives/java
lrwxrwxrwx 1 root root 73 Jan 8 05:37 /etc/alternatives/java -> /usr/lib/jvm/java-1.8.0-openjdk-1.8.0.242.b08-0.el7_7.x86_64/jre/bin/java

```

Then execute:  
`/usr/share/logstash/bin/system-install`  
and finally:  
`systemctl restart logstash`

---

<div class="post-metadata">

**Author:** ![rschmerb](https://avatars.discourse-cdn.com/v4/letter/r/8c91f0/32.png) [@rschmerb](https://discuss.elastic.co/u/rschmerb)\
**Post date:** [January 26, 2022, 7:09pm UTC](https://discuss.elastic.co/t/jdbc-input-kafka-output-syntax-error-unexpected-end-of-file-java-after-pipeline-starts/294452/7 "2022-01-26T19:09:32Z")

</div>

After changing (a previously working):  
`jdbc_driver_class => ""`  
to:  
`jdbc_driver_class => "net.sourceforge.jtds.jdbc.Driver"`  
we seem to be working now.

We also tested this with the built in jdk and it worked correctly.

---

<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:** [February 23, 2022, 7:10pm UTC](https://discuss.elastic.co/t/jdbc-input-kafka-output-syntax-error-unexpected-end-of-file-java-after-pipeline-starts/294452/8 "2022-02-23T19:10:26Z")

</div>

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.
