History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: UP-1773
Type: Bug Bug
Status: Open Open
Priority: Major Major
Assignee: Unassigned
Reporter: George Lindholm
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
uPortal

SQL database error while retrieving user's portal UID

Created: 01/Aug/07 12:22 AM   Updated: 19/Dec/07 02:47 PM
Component/s: Database
Affects Version/s: 2.5.3 GA
Fix Version/s: None

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown


 Description  « Hide
ERROR [TP-Processor23] portal.RDBMUserIdentityStore.[] Jul/31 15:44:44 - SQL database error while retrieving user's portal UID
org.jasig.portal.AuthorizationException: SQL database error while retrieving user's portal UID
at org.jasig.portal.RDBMUserIdentityStore.updateUser(RDBMUserIdentityStore.java:680)
at org.jasig.portal.RDBMUserIdentityStore.getPortalUID(RDBMUserIdentityStore.java:287)
at org.jasig.portal.services.Authentication.authenticate(Authentication.java:183)
at org.jasig.portal.LoginServlet.service(LoginServlet.java:141)
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.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:199)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:282)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:754)
at org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:684)
at org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:876)
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: Already closed
at org.apache.tomcat.dbcp.dbcp.PoolablePreparedStatement.close(PoolablePreparedStatement.java:75)
at org.apache.tomcat.dbcp.dbcp.DelegatingStatement.close(DelegatingStatement.java:165)
at org.jasig.portal.RDBMUserIdentityStore.updateUser(RDBMUserIdentityStore.java:573)
... 19 more

Looking at the code I see some dubious database connection management. Not saying that it
hides another problem.

The error was generated during a heavy loadtest

 All   Comments   Work Log   Change History   FishEye      Sort Order:
Robin West [19/Dec/07 02:47 PM]
Not sure if this is the same issue, but after upgrading to 2.6.0-GA I discovered that RDBMUserIdentityStore.updateUser() calls prepareStatement with a null string. I dug (briefly) through the change history but couldn't figure out how/why/when it went missing, but it definitely causes a NPE in my installation.

This is the relevant block of code:

insertStmt = con.prepareStatement(insert);
while (rs.next()) {
insert =
"INSERT INTO UP_USER_PARAM (USER_ID, USER_PARAM_NAME, USER_PARAM_VALUE) " +
"VALUES(?, ?, ?)";
...

There is no initialization of the "insert" string prior to this code (although it was there in previous versions).

-Robin