[jboss-user] [JBossCache] - Re: java.io.NotSerializableException: java.lang.Object -Clus
catchupvijay
do-not-reply at jboss.com
Mon Jul 24 12:20:18 EDT 2006
Well, I think this has got to do with the way Ibatis is implemented. Here's an example.
private List runQueryForList(SqlStatement localSql, Connection conn, Object parameterObject, int skipResults, int maxResults, RowHandler rowHandler) throws SQLException
{
List list;
if(log.isDebugEnabled())
{
log.debug("executeQueryForList: " + name);
conn = ConnectionLogProxy.newInstance(conn);
}
ErrorField errorField = new ErrorField();
if(rowHandler == null)
list = new ArrayList();
else
list = null;
ResultSet rs = null;
PreparedStatement ps = null;
String errorMessage = "Check the SQL statement.";
try
{
sqlMap.incrementExecutionThrottle(conn);
ps = createStatement(conn, localSql, parameterObject);
if(sqlMap.isDriverHintsEnabled() && maxResults != -1 && skipResults != -1)
{
ps.setFetchSize(maxResults + skipResults);
ps.setMaxRows(maxResults + skipResults);
}
errorMessage = "Check the Parameter Map (or inline parameters).";
applyParameterMap(localSql, ps, parameterObject, errorField);
errorField.errorField = null;
errorMessage = "Check the SQL statement.";
rs = ps.executeQuery();
for(int i = 0; i < skipResults; i++)
if(!rs.next())
break;
errorMessage = "Check the Result Map.";
int n = 0;
if(rowHandler == null)
{
for(; (maxResults == -1 || n < maxResults) && rs.next(); n++)
{
Object object = applyResultMap(conn, rs, null, errorField);
list.add(object);
}
errorField.errorField = null;
} else
{
for(; (maxResults == -1 || n < maxResults) && rs.next(); n++)
{
Object object = applyResultMap(conn, rs, null, errorField);
rowHandler.handleRow(object);
}
errorField.errorField = null;
}
}
catch(Throwable t)
{
Throwable tt = unwrapProxyException(t);
String msg = "";
if(errorField.errorField != null)
msg = "Error executing '" + name + "' in '" + resourceName + "'. " + errorMessage + " Check the '" + errorField + "' property. Cause: " + t;
else
msg = "Error executing '" + name + "' in '" + resourceName + "'. " + errorMessage + " Cause: " + t;
if(log.isErrorEnabled())
log.error(msg, t.fillInStackTrace());
if(t instanceof SQLException)
throw (SQLException)t;
else
throw new SQLException(msg);
}
finally
{
closeResultSet(rs);
closeStatement(ps);
sqlMap.decrementExecutionThrottle(conn);
}
notifyListeners();
return list;
}
BELOW IS THE applyResultMap METHOD
private Object applyResultMap(Connection conn, ResultSet rs, Object resultObject, ErrorField errorField)
throws SQLException
{ Object object = resultObject;
String typeName = null;
if(getResultMapName() != null)
{
ResultMap map = getSqlMap().getResultMap(getResultMapName());
typeName = map.getClassName();
if(object == null)
object = instantiate(map.getClassName());
ResultMapping mapping;
for(Iterator names = map.getMappedPropertyNames(); names.hasNext(); setBeanProperty(mapping, object, conn, rs, errorField))
{
String propertyName = (String)names.next();
mapping = map.getResultMapping(propertyName);
}
} else
if(resultClass != null)
{
typeName = resultClass;
if(object == null)
object = instantiate(resultClass);
if(object instanceof BaseValue)
{
ResultMapping mapping = new ResultMapping();
mapping.setPropertyName("value");
mapping.setColumnName("VALUE");
mapping.setColumnIndex(new Integer(1));
setBeanProperty(mapping, object, conn, rs, errorField);
} else
if(object instanceof Map)
{
ResultSetMetaData rsmd = rs.getMetaData();
int i = 0;
for(int n = rsmd.getColumnCount(); i < n; i++)
{
String columnName = rsmd.getColumnLabel(i + 1);
((Map)object).put(columnName, rs.getObject(i + 1));
}
} else
{
autoMapResultSet(conn, rs, object, errorField);
}
}
if(typeName != null && object != null && (object instanceof BaseValue) && !object.getClass().getName().equals(typeName))
object = StaticBeanProbe.getObject(object, "value");
return object;
}
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3960458#3960458
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3960458
More information about the jboss-user
mailing list