[jboss-jira] [JBoss JIRA] Commented: (JBAS-6086) the root of the problem is hibernate, resultset and

Andrew Oliver (JIRA) jira-events at lists.jboss.org
Wed Dec 23 08:38:31 EST 2009


the root of the problem is hibernate, resultset
 and  the methods of org.jboss.resource.adapter.jdbc.WrappedResultSet class.
In-Reply-To: <29276448.1223972600899.JavaMail.jira at cloud.prod.atl2.jboss.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: quoted-printable
Precedence: bulk


    [ https://jira.jboss.org/jira/browse/JBAS-6086?page=3Dcom.atlassian.jir=
a.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=3D12501503=
#action_12501503 ]=20

Andrew Oliver commented on JBAS-6086:
-------------------------------------

This seems to be more of a hibernate problem at worst case, but I suspect i=
t has more to do with specific configuration (using english column names wi=
th a database language/locale that is not properly configured for such).

The suggested fix is not an appropriate fix for the problem as not all data=
bases or situations call for it.

> the root of the problem is hibernate, resultset and=20
the root of the problem is hibernate, resultset and  the methods of org.jbo=
ss.resource.adapter.jdbc.WrappedResultSet class.
> -------------------------------------------------------------------------=
---------------------------------------------------------------------------=
-----------------------------
>
>                 Key: JBAS-6086
>                 URL: https://jira.jboss.org/jira/browse/JBAS-6086
>             Project: JBoss Application Server
>          Issue Type: Bug
>      Security Level: Public(Everyone can see)=20
>          Components: Hibernate service, Transaction Manager (JBossTM)
>    Affects Versions: JBossAS-4.2.3.GA
>         Environment: Linux Pardus, Turkish Locale, Java jdk 1.5
>            Reporter: halil agin
>            Assignee: Steve Ebersole
>            Priority: Critical
>   Original Estimate: 1 minute
>  Remaining Estimate: 1 minute
>
> when http://localhost:8080/portal is called, the error is printed on the =
page. it is below.
> type Exception report
> message
> description The server encountered an internal error () that prevented it=
 from fulfilling this request.
> exception
> javax.servlet.ServletException: org.postgresql.util.PSQLException: Bu Res=
ultSet i=C3=A7inde LISTENER10_0_ s=C3=BCtun ad? bulunamad?.
> =09org.jboss.portal.server.servlet.PortalServlet.service(PortalServlet.ja=
va:278)
> =09javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> =09org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFil=
ter.java:96)
> root cause
> org.postgresql.util.PSQLException: Bu ResultSet i=C3=A7inde LISTENER10_0_=
 s=C3=BCtun ad? bulunamad?.
> =09org.postgresql.jdbc2.AbstractJdbc2ResultSet.findColumn(AbstractJdbc2Re=
sultSet.java:2391)
> =09org.postgresql.jdbc2.AbstractJdbc2ResultSet.getString(AbstractJdbc2Res=
ultSet.java:2210)
> =09org.jboss.resource.adapter.jdbc.WrappedResultSet.getString(WrappedResu=
ltSet.java:888)
> =09org.hibernate.type.StringType.get(StringType.java:18)
> =09org.hibernate.type.NullableType.nullSafeGet(NullableType.java:163)
> =09org.hibernate.type.NullableType.nullSafeGet(NullableType.java:154)
> =09org.hibernate.type.AbstractType.hydrate(AbstractType.java:81)
> =09org.hibernate.persister.entity.AbstractEntityPersister.hydrate(Abstrac=
tEntityPersister.java:2096)
> =09org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1380)
> =09org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1308)
> =09org.hibernate.loader.Loader.getRow(Loader.java:1206)
> =09org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:580)
> =09org.hibernate.loader.Loader.doQuery(Loader.java:701)
> =09org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loa=
der.java:236)
> =09org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
> =09org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLo=
ader.java:48)
> =09org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLo=
ader.java:42)
> =09org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEn=
tityPersister.java:3044)
> =09org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(De=
faultLoadEventListener.java:395)
> =09org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEve=
ntListener.java:375)
> =09org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEvent=
Listener.java:139)
> =09org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLo=
adEventListener.java:195)
> =09org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEve=
ntListener.java:103)
> =09org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
> =09org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:846)
> =09org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:557)
> =09org.hibernate.type.EntityType.resolve(EntityType.java:379)
> =09org.hibernate.type.OneToOneType.assemble(OneToOneType.java:141)
> =09org.hibernate.type.TypeFactory.assemble(TypeFactory.java:420)
> =09org.hibernate.cache.entry.CacheEntry.assemble(CacheEntry.java:96)
> =09org.hibernate.cache.entry.CacheEntry.assemble(CacheEntry.java:82)
> =09org.hibernate.event.def.DefaultLoadEventListener.assembleCacheEntry(De=
faultLoadEventListener.java:553)
> =09org.hibernate.event.def.DefaultLoadEventListener.loadFromSecondLevelCa=
che(DefaultLoadEventListener.java:508)
> =09org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEve=
ntListener.java:357)
> =09org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEvent=
Listener.java:139)
> =09org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLo=
adEventListener.java:195)
> =09org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEve=
ntListener.java:103)
> =09org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
> =09org.hibernate.impl.SessionImpl.get(SessionImpl.java:815)
> =09org.hibernate.impl.SessionImpl.get(SessionImpl.java:808)
> =09org.jboss.portal.core.impl.model.portal.PersistentPortalObjectContaine=
r.getObjectNode(PersistentPortalObjectContainer.java:296)
> =09org.jboss.portal.core.impl.model.portal.PersistentPortalObjectContaine=
r.getObjectNode(PersistentPortalObjectContainer.java:252)
> =09org.jboss.portal.core.impl.model.portal.AbstractPortalObjectContainer.=
getContext(AbstractPortalObjectContainer.java:112)
> =09org.jboss.portal.core.impl.model.portal.AbstractPortalObjectContainer.=
getContext(AbstractPortalObjectContainer.java:81)
> =09org.jboss.portal.core.model.portal.DefaultPortalCommandFactory.doMappi=
ng(DefaultPortalCommandFactory.java:72)
> =09org.jboss.portal.core.controller.Controller.handle(Controller.java:252=
)
> =09org.jboss.portal.server.RequestControllerDispatcher.invoke(RequestCont=
rollerDispatcher.java:51)
> =09org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.ja=
va:131)
> =09org.jboss.portal.server.aspects.server.ContentTypeInterceptor.invoke(C=
ontentTypeInterceptor.java:68)
> =09org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.jav=
a:38)
> =09org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.ja=
va:115)
> =09org.jboss.portal.core.aspects.server.PortalContextPathInterceptor.invo=
ke(PortalContextPathInterceptor.java:45)
> =09org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.jav=
a:38)
> =09org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.ja=
va:115)
> =09org.jboss.portal.core.aspects.server.LocaleInterceptor.invoke(LocaleIn=
terceptor.java:96)
> =09org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.jav=
a:38)
> =09org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.ja=
va:115)
> =09org.jboss.portal.core.aspects.server.UserInterceptor.invoke(UserInterc=
eptor.java:193)
> =09org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.jav=
a:38)
> =09org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.ja=
va:115)
> =09org.jboss.portal.server.aspects.server.SignOutInterceptor.invoke(SignO=
utInterceptor.java:98)
> =09org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.jav=
a:38)
> =09org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.ja=
va:115)
> =09org.jboss.portal.core.impl.api.user.UserEventBridgeTriggerInterceptor.=
invoke(UserEventBridgeTriggerInterceptor.java:65)
> =09org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.jav=
a:38)
> =09org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.ja=
va:115)
> =09org.jboss.portal.core.aspects.server.IdentityCacheInterceptor.invoke(I=
dentityCacheInterceptor.java:68)
> =09org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.jav=
a:38)
> =09org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.ja=
va:115)
> =09org.jboss.portal.core.aspects.server.TransactionInterceptor.org$jboss$=
portal$core$aspects$server$TransactionInterceptor$invoke$aop(TransactionInt=
erceptor.java:49)
> =09org.jboss.portal.core.aspects.server.TransactionInterceptor$invoke_N51=
43606530999904530.invokeNext(TransactionInterceptor$invoke_N514360653099990=
4530.java)
> =09org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
> =09org.jboss.aspects.tx.TxInterceptor$RequiresNew.invoke(TxInterceptor.ja=
va:262)
> =09org.jboss.portal.core.aspects.server.TransactionInterceptor$invoke_N51=
43606530999904530.invokeNext(TransactionInterceptor$invoke_N514360653099990=
4530.java)
> =09org.jboss.portal.core.aspects.server.TransactionInterceptor.invoke(Tra=
nsactionInterceptor.java)
> =09org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.jav=
a:38)
> =09org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.ja=
va:115)
> =09org.jboss.portal.server.aspects.LockInterceptor.invoke(LockInterceptor=
.java:139)
> =09org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.ja=
va:115)
> =09org.jboss.portal.common.invocation.Invocation.invoke(Invocation.java:1=
57)
> =09org.jboss.portal.server.servlet.PortalServlet.service(PortalServlet.ja=
va:252)
> =09javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> =09org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFil=
ter.java:96)
> note The full stack trace of the root cause is available in the JBossWeb/=
2.0.1.GA logs.
> the root of the problem is hibernate, resultset and=20
> the methods of org.jboss.resource.adapter.jdbc.WrappedResultSet class.
> the class file is located in ./connector/src/main/org/jboss/resource/adap=
ter/jdbc/WrappedResultSet.java=20
> under src directory.
> the problem definition:
> the parameter named colname Or columnName of the functions get* or update=
*
> the member functions having below format (*:means any string) are buggy.
> get*(String colName, <other params>)
> get*(String columnName, <other params>)
> find*(String columnName, <other params>)
> update*(String colName, <other params>)
> update*(String columnName, <other params>)
> when above functions are called, colName or columnName parameter, which i=
ndicates the column names in the result set, assigned to a string which is =
represented as upper case. However, in the result set, the column name has =
a low case representation, therefore when the below functions called in the=
 the member functions mentioned above, the wrong colName and columnName pas=
sed to resultSet functions. ThereFore, no columnname found in the resultset=
 which is not wanted.
> resultSet.get*(String colName, <other params>)
> resultSet.get*(String columnName, <other params>)
> resultSet.update*(String colName, <other params>)
> resultSet.update*(String columnName, <other params>)
> For example, the parameter of function named colName has value LISTENER10=
_1_, but in the resultSet there is a column named listener10_1_. Therefore,=
 the function in the line 254 returns null, which is  the root of the probl=
em.
> 249    public Array getArray(String colName) throws SQLException
>  250    {
>  251       checkState();
>  252       try
>  253       {
>  254          return resultSet.getArray(colName);
>  255       }
>  256       catch (Throwable t)
>  257       {
>  258          throw checkException(t);
>  259       }
>  260    }

--=20
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: htt=
ps://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       



More information about the jboss-jira mailing list