]
Andrew Oliver resolved JBAS-6086.
---------------------------------
Resolution: Won't Fix
(this is to say "won't fix in this way" and I suggest filing a bug against
hibernate at
Hibernate case issues when getting column meta-data in a turkish
locale with uppercase english column names
-----------------------------------------------------------------------------------------------------------
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)
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 ResultSet içinde
LISTENER10_0_ sütun ad? bulunamad?.
org.jboss.portal.server.servlet.PortalServlet.service(PortalServlet.java:278)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
root cause
org.postgresql.util.PSQLException: Bu ResultSet içinde LISTENER10_0_ sütun ad?
bulunamad?.
org.postgresql.jdbc2.AbstractJdbc2ResultSet.findColumn(AbstractJdbc2ResultSet.java:2391)
org.postgresql.jdbc2.AbstractJdbc2ResultSet.getString(AbstractJdbc2ResultSet.java:2210)
org.jboss.resource.adapter.jdbc.WrappedResultSet.getString(WrappedResultSet.java:888)
org.hibernate.type.StringType.get(StringType.java:18)
org.hibernate.type.NullableType.nullSafeGet(NullableType.java:163)
org.hibernate.type.NullableType.nullSafeGet(NullableType.java:154)
org.hibernate.type.AbstractType.hydrate(AbstractType.java:81)
org.hibernate.persister.entity.AbstractEntityPersister.hydrate(AbstractEntityPersister.java:2096)
org.hibernate.loader.Loader.loadFromResultSet(Loader.java:1380)
org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1308)
org.hibernate.loader.Loader.getRow(Loader.java:1206)
org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:580)
org.hibernate.loader.Loader.doQuery(Loader.java:701)
org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
org.hibernate.loader.Loader.loadEntity(Loader.java:1860)
org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48)
org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42)
org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3044)
org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:395)
org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:375)
org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:139)
org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:195)
org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103)
org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:846)
org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:557)
org.hibernate.type.EntityType.resolve(EntityType.java:379)
org.hibernate.type.OneToOneType.assemble(OneToOneType.java:141)
org.hibernate.type.TypeFactory.assemble(TypeFactory.java:420)
org.hibernate.cache.entry.CacheEntry.assemble(CacheEntry.java:96)
org.hibernate.cache.entry.CacheEntry.assemble(CacheEntry.java:82)
org.hibernate.event.def.DefaultLoadEventListener.assembleCacheEntry(DefaultLoadEventListener.java:553)
org.hibernate.event.def.DefaultLoadEventListener.loadFromSecondLevelCache(DefaultLoadEventListener.java:508)
org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:357)
org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:139)
org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:195)
org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103)
org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)
org.hibernate.impl.SessionImpl.get(SessionImpl.java:815)
org.hibernate.impl.SessionImpl.get(SessionImpl.java:808)
org.jboss.portal.core.impl.model.portal.PersistentPortalObjectContainer.getObjectNode(PersistentPortalObjectContainer.java:296)
org.jboss.portal.core.impl.model.portal.PersistentPortalObjectContainer.getObjectNode(PersistentPortalObjectContainer.java:252)
org.jboss.portal.core.impl.model.portal.AbstractPortalObjectContainer.getContext(AbstractPortalObjectContainer.java:112)
org.jboss.portal.core.impl.model.portal.AbstractPortalObjectContainer.getContext(AbstractPortalObjectContainer.java:81)
org.jboss.portal.core.model.portal.DefaultPortalCommandFactory.doMapping(DefaultPortalCommandFactory.java:72)
org.jboss.portal.core.controller.Controller.handle(Controller.java:252)
org.jboss.portal.server.RequestControllerDispatcher.invoke(RequestControllerDispatcher.java:51)
org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:131)
org.jboss.portal.server.aspects.server.ContentTypeInterceptor.invoke(ContentTypeInterceptor.java:68)
org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
org.jboss.portal.core.aspects.server.PortalContextPathInterceptor.invoke(PortalContextPathInterceptor.java:45)
org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
org.jboss.portal.core.aspects.server.LocaleInterceptor.invoke(LocaleInterceptor.java:96)
org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
org.jboss.portal.core.aspects.server.UserInterceptor.invoke(UserInterceptor.java:193)
org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
org.jboss.portal.server.aspects.server.SignOutInterceptor.invoke(SignOutInterceptor.java:98)
org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
org.jboss.portal.core.impl.api.user.UserEventBridgeTriggerInterceptor.invoke(UserEventBridgeTriggerInterceptor.java:65)
org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
org.jboss.portal.core.aspects.server.IdentityCacheInterceptor.invoke(IdentityCacheInterceptor.java:68)
org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
org.jboss.portal.core.aspects.server.TransactionInterceptor.org$jboss$portal$core$aspects$server$TransactionInterceptor$invoke$aop(TransactionInterceptor.java:49)
org.jboss.portal.core.aspects.server.TransactionInterceptor$invoke_N5143606530999904530.invokeNext(TransactionInterceptor$invoke_N5143606530999904530.java)
org.jboss.aspects.tx.TxPolicy.invokeInOurTx(TxPolicy.java:79)
org.jboss.aspects.tx.TxInterceptor$RequiresNew.invoke(TxInterceptor.java:262)
org.jboss.portal.core.aspects.server.TransactionInterceptor$invoke_N5143606530999904530.invokeNext(TransactionInterceptor$invoke_N5143606530999904530.java)
org.jboss.portal.core.aspects.server.TransactionInterceptor.invoke(TransactionInterceptor.java)
org.jboss.portal.server.ServerInterceptor.invoke(ServerInterceptor.java:38)
org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
org.jboss.portal.server.aspects.LockInterceptor.invoke(LockInterceptor.java:139)
org.jboss.portal.common.invocation.Invocation.invokeNext(Invocation.java:115)
org.jboss.portal.common.invocation.Invocation.invoke(Invocation.java:157)
org.jboss.portal.server.servlet.PortalServlet.service(PortalServlet.java:252)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.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
the methods of org.jboss.resource.adapter.jdbc.WrappedResultSet class.
the class file is located in
./connector/src/main/org/jboss/resource/adapter/jdbc/WrappedResultSet.java
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 indicates 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 passed 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 problem.
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 }
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: