Bug #2975 Java + MySQL
Submitted: 26 Feb 2004 8:45 Modified: 5 Mar 2004 14:20
Reporter: saverio ciotoli Email Updates:
Status: Can't repeat Impact on me:
None 
Category:Connector / J Severity:S1 (Critical)
Version:3.0.11 OS:Windows (Windows XP)
Assigned to: CPU Architecture:Any

[26 Feb 2004 8:45] saverio ciotoli
Description:
Please help me

I'm developing Java+MySQL on Windows XP and TomCat.
MySQl version: 4.0.14
J-Connector: 3.0.11

The error is always the same:

DB connection error 
Exception: 

java.sql.SQLException
Communication link failure: java.io.IOException, underlying cause: Unexpected end of input stream

** BEGIN NESTED EXCEPTION ** 

java.io.IOException
MESSAGE: Unexpected end of input stream

STACKTRACE:

java.io.IOException: Unexpected end of input stream
	at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:1267)
	at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:510)
	at com.mysql.jdbc.Connection.createNewIO(Connection.java:1734)
	at com.mysql.jdbc.Connection.<init>(Connection.java:562)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:361)
	at java.sql.DriverManager.getConnection(DriverManager.java:512)
	at java.sql.DriverManager.getConnection(DriverManager.java:171)
	at litteral.servlets.tools.db.DbRequest.<init>(DbRequest.java:107)
	at litteral.servlets.dbbrowse.Browse._$8465(Browse.java:223)
	at litteral.servlets.dbbrowse.Browse.doGet(Browse.java:77)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
	at java.lang.Thread.run(Thread.java:536)

** END NESTED EXCEPTION **

database : defaultdb 
driver : com.mysql.jdbc.Driver 
url : jdbc:mysql://localhost:8080/mydbname 
user : root 

How to repeat:
The error is always the same using JConnectr
[27 Feb 2004 1:17] saverio ciotoli
Now i move my JConnector jar file im my lib dir.
The error is:

java.sql.SQLException
Communication link failure: java.io.EOFException, underlying cause: null

** BEGIN NESTED EXCEPTION ** 

java.io.EOFException

STACKTRACE:

java.io.EOFException
	at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1318)
	at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:1337)
	at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:566)
	at com.mysql.jdbc.Connection.createNewIO(Connection.java:1684)
	at com.mysql.jdbc.Connection.<init>(Connection.java:435)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:400)
	at java.sql.DriverManager.getConnection(DriverManager.java:512)
	at java.sql.DriverManager.getConnection(DriverManager.java:171)
	at litteral.servlets.tools.db.DbRequest.<init>(DbRequest.java:107)
	at litteral.servlets.dbbrowse.Browse._$8465(Browse.java:223)
	at litteral.servlets.dbbrowse.Browse.doGet(Browse.java:77)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:494)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2417)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
	at org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
	at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
	at org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:193)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:781)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:549)
	at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:589)
	at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:666)
	at java.lang.Thread.run(Thread.java:536)

** END NESTED EXCEPTION **
[28 Feb 2004 9:21] [ name withheld ]
Try Connector/J 3.1. I'm using the nightly build below for a long time now, and I find it very stable and almost bug free. (Actually the last one I found is under investigation now. See bug#2787)
The 4.1.2 alpha server is stable enough too. (Altough it is "alpha".)
The only problem is with PrepareStatements. Don't rely on them righ now.

My development environment:
- MySQL server 4.1.2-alpha-nightly-20040211 on Linux. (Mandrake 8.1)
- mysql-connector-java-3.1-nightly-20040211-bin.jar (on Win98) 
- JSDK 1.4.2 b-28 (on Win98)
- Apache Tomcat 4.1.29 (on Win98)

(But the same versions works on the production SLES 7 server.)
[28 Feb 2004 9:29] [ name withheld ]
If I remember well, the above error occured last time when I used a malformed jdbc connect string. (Also note, that in some Connector versions the length of the database name cannot exceed 4 characters. See bug #375. This is corrected yet.)

I'm using the following connect string:
"jdbc:mysql://localhost/itsa?user=itsauser&password=itsauserpwd&useUnicode=true&characterEncoding=utf-8"
[5 Mar 2004 14:20] Mark Matthews
Do you happen to have any software firewalls installed (ICF, ZoneAlarm, et-al) that would cause the TCP/IP networking that Connector/J needs to use not work correctly?