Jan Pazdziora wrote:
Hello,
when I try to access the /rhn/Login.do page of my PostgreSQL-backended
Spacewalk, I get the following traceback:
2010-06-29 11:16:41,052 [TP-Processor3] ERROR org.hibernate.util.JDBCExceptionReporter - Bad value for type
long : <?xml version="1.0" encoding="UTF-8"?>\012 ... </rhn-cert>
2010-06-29 11:16:41,056 [TP-Processor3] WARN
org.apache.struts.action.RequestProcessor - Unhandled Exception thrown: class
com.redhat.rhn.common.hibernate.HibernateRuntimeException
2010-06-29 11:16:41,074 [TP-Processor3] ERROR
com.redhat.rhn.frontend.servlets.SessionFilter - Error during transaction.
Rolling back
javax.servlet.ServletException:
com.redhat.rhn.common.hibernate.HibernateRuntimeException: Executing query
SatelliteCertificate.lookupNewestCertificate with params null failed
at
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
at
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at
com.redhat.rhn.frontend.struts.RhnRequestProcessor.process(RhnRequestProcessor.java:82)
at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
com.redhat.rhn.frontend.servlets.AuthFilter.doFilter(AuthFilter.java:101)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
com.opensymphony.module.sitemesh.filter.PageFilter.parsePage(PageFilter.java:142)
at
com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:58)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
com.redhat.rhn.frontend.servlets.LocalizedEnvironmentFilter.doFilter(LocalizedEnvironmentFilter.java:67)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
com.redhat.rhn.frontend.servlets.EnvironmentFilter.doFilter(EnvironmentFilter.java:108)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
com.redhat.rhn.frontend.servlets.SessionFilter.doFilter(SessionFilter.java:55)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
com.redhat.rhn.frontend.servlets.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:97)
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:233)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.jk.server.JkCoyoteHandler.invoke(JkCoyoteHandler.java:190)
at org.apache.jk.common.HandlerRequest.invoke(HandlerRequest.java:291)
at org.apache.jk.common.ChannelSocket.invoke(ChannelSocket.java:769)
at
org.apache.jk.common.ChannelSocket.processConnection(ChannelSocket.java:698)
at
org.apache.jk.common.ChannelSocket$SocketConnection.runIt(ChannelSocket.java:891)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:690)
at java.lang.Thread.run(Thread.java:636)
Caused by: com.redhat.rhn.common.hibernate.HibernateRuntimeException: Executing
query SatelliteCertificate.lookupNewestCertificate with params null failed
at
com.redhat.rhn.common.hibernate.HibernateFactory.lookupObjectByNamedQuery(HibernateFactory.java:178)
at
com.redhat.rhn.domain.satellite.CertificateFactory.lookupNewestCertificate(CertificateFactory.java:46)
at
com.redhat.rhn.manager.satellite.CertificateManager.getGracePeriodEndDate(CertificateManager.java:88)
at
com.redhat.rhn.manager.satellite.CertificateManager.isSatelliteCertExpired(CertificateManager.java:57)
at
com.redhat.rhn.frontend.action.LoginSetupAction.execute(LoginSetupAction.java:47)
at
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
... 40 more
Caused by: org.hibernate.exception.DataException: could not execute query
at
org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:77)
at
org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.loader.Loader.doList(Loader.java:2223)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
at org.hibernate.loader.Loader.list(Loader.java:2099)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
at
org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
at
org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
at
org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:811)
at
com.redhat.rhn.common.hibernate.HibernateFactory.lookupObjectByNamedQuery(HibernateFactory.java:172)
... 45 more
Caused by: org.postgresql.util.PSQLException: Bad value for type long : <?xml version="1.0"
encoding="UTF-8"?>\012 ... /rhn-cert>
at
org.postgresql.jdbc2.AbstractJdbc2ResultSet.toLong(AbstractJdbc2ResultSet.java:2796)
at
org.postgresql.jdbc2.AbstractJdbc2ResultSet.getLong(AbstractJdbc2ResultSet.java:2019)
at
org.postgresql.jdbc3g.Jdbc3gResultSet.getBlob(Jdbc3gResultSet.java:52)
at
org.postgresql.jdbc2.AbstractJdbc2ResultSet.getBlob(AbstractJdbc2ResultSet.java:335)
at
com.mchange.v2.c3p0.impl.NewProxyResultSet.getBlob(NewProxyResultSet.java:515)
at org.hibernate.type.BlobType.get(BlobType.java:57)
at org.hibernate.type.BlobType.nullSafeGet(BlobType.java:111)
at org.hibernate.type.AbstractType.hydrate(AbstractType.java:81)
at
org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2096)
at org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1380)
at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1308)
at org.hibernate.loader.Loader.getRow(Loader.java:1206)
at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:580)
at org.hibernate.loader.Loader.doQuery(Loader.java:701)
at
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
at org.hibernate.loader.Loader.doList(Loader.java:2220)
... 54 more
The issue seems to be cause by the fact that the class Jdbc3gResultSet
in org/postgresql/jdbc3g/Jdbc3gResultSet.java does
public java.sql.Blob getBlob(int i) throws SQLException
{
checkResultSet(i);
if (wasNullFlag)
return null;
return new Jdbc3gBlob(connection, getLong(i));
}
and AbstractJdbc2ResultSet in
org/postgresql/jdbc2/AbstractJdbc2ResultSet.java does
public long getLong(int columnIndex) throws SQLException
{
checkResultSet(columnIndex);
if (wasNullFlag)
return 0; // SQL NULL
Encoding encoding = connection.getEncoding();
if (encoding.hasAsciiNumbers()) {
try {
return getFastLong(columnIndex);
} catch (NumberFormatException ex) {
}
}
return toLong( getFixedString(columnIndex) );
}
So the getBlob tries to do a Jdbc3gBlob with connection and some oid,
while the getFixedString(columnIndex) already returns the blob
content.
I tried to google around, tried one recommendation to change the
type in SatelliteCertificate.hbm.xml from blob to binary, but that
lead to other errors.
Do you guys have an easy solution for our code which accesses
rhnSatelliteCert?
Thanks,
I know Justin, Partha and Shannon were talking about this today. Not
sure if they came up with a solution, since I also know folks chatted
over IRC :)
Cliff
_______________________________________________
Spacewalk-devel mailing list
Spacewalk-devel@redhat.com
https://www.redhat.com/mailman/listinfo/spacewalk-devel