バージョン違い

TomcatHSQLDBでデータソースを試していたら、昔は動いていた設定でうまく動かない。
Connection is broken: Transfer corrupted って言われてもなぁー。


2006/11/30 18:40:16 org.apache.catalina.core.StandardWrapperValve invoke
致命的: サーブレット invoker のServlet.service()が例外を投げました
org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Connection is broken: Transfer corrupted)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:855)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540)
at websample.DataSourceTest.doGet(DataSourceTest.java:31)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.servlets.InvokerServlet.serveRequest(InvokerServlet.java:419)
at org.apache.catalina.servlets.InvokerServlet.doGet(InvokerServlet.java:133)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:664)
at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.sql.SQLException: Connection is broken: Transfer corrupted
at org.hsqldb.jdbc.jdbcUtil.sqlException(Unknown Source)
at org.hsqldb.jdbc.jdbcConnection.getAutoCommit(Unknown Source)
at org.apache.tomcat.dbcp.dbcp.DelegatingConnection.getAutoCommit(DelegatingConnection.java:241)
at org.apache.tomcat.dbcp.dbcp.PoolableConnectionFactory.passivateObject(PoolableConnectionFactory.java:351)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.validateConnectionFactory(BasicDataSource.java:880)
at org.apache.tomcat.dbcp.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:851)
... 22 more


エラー文字で、ぐーぐってたら、こんなコメント発見


http://comments.gmane.org/gmane.comp.java.jasig.uportal/4623

My guess would be a HSQL version issue. You need to make sure that the
HSQL JAR that uPortal is using and the one running the database are the
exact same version.


バージョン違い。まさかなー。


JARをコピーしなおしたら動いた。こっちは新しくダウンロードしたJARで、あっちは昔のサンプルのJARをつっこんでたようだ。アホだ。いくつになっても、うっかりミスは直らないようです。


あー、データソースじゃなくても、JDBC経由でも同じ感じのエラーでるな。サーバーとJDBCのJARのバージョン違い。またうっかりた。