7 Replies Latest reply on Nov 21, 2008 6:16 AM by jaikiran

    Using Java 6 our datasource username is ignored

    fromage

      Hello,

      We recently upgraded from Java 5 to Java 6 and found that our postgresql datasources were always trying to connect with the "sa" user name no matter what we put in the datasource. Putting the username and password in the JDBC URL in the datasource fixes the issue, but this is not normal.

      We've tried both 4.2.2 and the 4.2.3 compiled for Java 6 with the same results.

      Environment:

      java version "1.6.0_10"
      Java(TM) SE Runtime Environment (build 1.6.0_10-b33)
      Java HotSpot(TM) Server VM (build 11.0-b15, mixed mode)
      postgresql-8.3-603.jdbc4.jar
      postgresql server 8.3.4

      What can I do to help track down the problem?

        • 1. Re: Using Java 6 our datasource username is ignored
          jaikiran

          Please post your datasource configuration file.


          and found that our postgresql datasources were always trying to connect with the "sa" user name no matter what we put in the datasource.


          How did you verify this?

          While posting the logs or xml content or code, remember to wrap it in a code block using the Code button in the message editor window and please hit the Preview button to make sure your post is correctly formatted

          • 2. Re: Using Java 6 our datasource username is ignored
            fromage

            I got the following exception in the logs:

            Caused by: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "sa"

            • 3. Re: Using Java 6 our datasource username is ignored
              fromage

               

              <?xml version="1.0" encoding="UTF-8"?>
              <datasources>
               <local-tx-datasource>
               <jndi-name>visiblelogisticsDatasource</jndi-name>
               <connection-url>jdbc:postgresql://localhost:5432/foo</connection-url>
               <driver-class>org.postgresql.Driver</driver-class>
               <user-name>foo</user-name>
               <password>foo</password>
               </local-tx-datasource>
              </datasources>
              


              • 4. Re: Using Java 6 our datasource username is ignored
                peterj

                I just tried on my setup. The only difference is I have PostgreSQL 8.3.3. It works for me.

                Are you sure that there si not some other database access going on, such as perhaps a login module? Or maybe someone changed the hsqldb-ds.xml file to use postgres?

                If that doesn't help, please post the full exception stack trace.

                • 5. Re: Using Java 6 our datasource username is ignored
                  fromage

                  Thanks for you help.

                  What do you mean some other database access?

                  This exception occurs when I log in my deployed application or when I invoke an mbean operation which uses the postgresql datasource. All this used to work before we switched to Java 6.

                  12:47:53,468 [ERROR] [JDBCExceptionReporter] Could not create connection; - nested throwable: (org.postgresql.util.PSQLException: FATAL: password authentication failed for user "sa"); - nested throwable: (org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (org.postgresql.util.PSQLException: FATAL: password authentication failed for user "sa"))
                  12:47:53,472 [ERROR] [[HtmlAdaptor] ] Servlet.service() for servlet HtmlAdaptor threw exception
                  javax.management.RuntimeMBeanException
                   at org.jboss.mx.interceptor.ReflectedDispatcher.handleInvocationExceptions(ReflectedDispatcher.java:176)
                   at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:163)
                   at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94)
                   at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133)
                   at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
                   at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142)
                   at org.jboss.mx.server.Invocation.invoke(Invocation.java:88)
                   at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264)
                   at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659)
                   at org.jboss.jmx.adaptor.control.Server.invokeOpByName(Server.java:258)
                   at org.jboss.jmx.adaptor.control.Server.invokeOp(Server.java:223)
                   at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet.invokeOp(HtmlAdaptorServlet.java:262)
                   at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet.processRequest(HtmlAdaptorServlet.java:100)
                   at org.jboss.jmx.adaptor.html.HtmlAdaptorServlet.doPost(HtmlAdaptorServlet.java:82)
                   at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
                   at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
                   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
                   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                   at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
                   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
                   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
                   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
                   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
                   at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
                   at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
                   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
                   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
                   at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
                   at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
                   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
                   at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:262)
                   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
                   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
                   at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:446)
                   at java.lang.Thread.run(Thread.java:619)
                  Caused by: org.hibernate.exception.GenericJDBCException: Cannot open connection
                   at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
                   at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
                   at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
                   at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:29)
                   at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426)
                   at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
                   at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:119)
                   at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)
                   at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326)
                   at org.hibernate.search.impl.FullTextSessionImpl.beginTransaction(FullTextSessionImpl.java:254)
                   at com.foo.mbean.Configuration.reIndex(Configuration.java:221)
                   at com.foo.mbean.Configuration.initialIndex(Configuration.java:249)
                   at com.foo.mbean.Configuration.manualIndex(Configuration.java:217)
                   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
                   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
                   at java.lang.reflect.Method.invoke(Method.java:597)
                   at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155)
                   ... 33 more
                  Caused by: org.jboss.util.NestedSQLException: Could not create connection; - nested throwable: (org.postgresql.util.PSQLException: FATAL: password authentication failed for user "sa"); - nested throwable: (org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (org.postgresql.util.PSQLException: FATAL: password authentication failed for user "sa"))
                   at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:109)
                   at org.hibernate.connection.DatasourceConnectionProvider.getConnection(DatasourceConnectionProvider.java:66)
                   at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423)
                   ... 46 more
                  Caused by: org.jboss.resource.JBossResourceException: Could not create connection; - nested throwable: (org.postgresql.util.PSQLException: FATAL: password authentication failed for user "sa")
                   at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:179)
                   at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.createConnectionEventListener(InternalManagedConnectionPool.java:577)
                   at org.jboss.resource.connectionmanager.InternalManagedConnectionPool.getConnection(InternalManagedConnectionPool.java:262)
                   at org.jboss.resource.connectionmanager.JBossManagedConnectionPool$BasePool.getConnection(JBossManagedConnectionPool.java:500)
                   at org.jboss.resource.connectionmanager.BaseConnectionManager2.getManagedConnection(BaseConnectionManager2.java:341)
                   at org.jboss.resource.connectionmanager.TxConnectionManager.getManagedConnection(TxConnectionManager.java:315)
                   at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:396)
                   at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:842)
                   at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:103)
                   ... 48 more
                  Caused by: org.postgresql.util.PSQLException: FATAL: password authentication failed for user "sa"
                   at org.postgresql.core.v3.ConnectionFactoryImpl.doAuthentication(ConnectionFactoryImpl.java:276)
                   at org.postgresql.core.v3.ConnectionFactoryImpl.openConnectionImpl(ConnectionFactoryImpl.java:95)
                   at org.postgresql.core.ConnectionFactory.openConnection(ConnectionFactory.java:66)
                   at org.postgresql.jdbc2.AbstractJdbc2Connection.<init>(AbstractJdbc2Connection.java:124)
                   at org.postgresql.jdbc3.AbstractJdbc3Connection.<init>(AbstractJdbc3Connection.java:30)
                   at org.postgresql.jdbc4.AbstractJdbc4Connection.<init>(AbstractJdbc4Connection.java:29)
                   at org.postgresql.jdbc4.Jdbc4Connection.<init>(Jdbc4Connection.java:24)
                   at org.postgresql.Driver.makeConnection(Driver.java:386)
                   at org.postgresql.Driver.connect(Driver.java:260)
                   at org.jboss.resource.adapter.jdbc.local.LocalManagedConnectionFactory.createManagedConnection(LocalManagedConnectionFactory.java:171)
                   ... 56 more
                  


                  • 6. Re: Using Java 6 our datasource username is ignored
                    vickyk

                    Can you try a simple jsp code to see if you can get the connection from the configured datasource?

                    • 7. Re: Using Java 6 our datasource username is ignored
                      jaikiran

                       

                      at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:426)
                       at org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144)
                       at org.hibernate.jdbc.JDBCContext.connection(JDBCContext.java:119)
                       at org.hibernate.transaction.JDBCTransaction.begin(JDBCTransaction.java:57)
                       at org.hibernate.impl.SessionImpl.beginTransaction(SessionImpl.java:1326)
                       at org.hibernate.search.impl.FullTextSessionImpl.beginTransaction(FullTextSessionImpl.java:2
                      54)
                       at com.foo.mbean.Configuration.reIndex(Configuration.java:221)
                      


                      And the code seems to be using Hibernate. That's adds an additional layer of configuration. Please post the hibernate configuration file (*.cfg.xml)