Ver Mensaje Individual
  #1 (permalink)  
Antiguo 19/03/2013, 13:51
Avatar de hschimpf
hschimpf
 
Fecha de Ingreso: junio-2009
Ubicación: in the World Wide Web
Mensajes: 140
Antigüedad: 14 años, 10 meses
Puntos: 17
Pregunta Problema con ResultSet PostgreSQL (PSQLException: ResultSet not positioned properly)

Buenas tardes,
tengo un inconveniente y nose como resolver. El problema es que no se si es problema del conector JDBC, o la base de datos PostgreSQL, o mi implementacion, ya que no siempre ocurre, es aleatorio.
Tengo este trozo de codigo:
Código Java:
Ver original
  1. ...
  2.             // ejecutamos el SQL para obtener los valores de las columnas del registro
  3.             this.getSQLConnector().executeQuery(this.getSQLConnector().prepareStatement(sql, this.getTrxName()), this.getTrxName());
  4.             // obtenemos el resultset
  5.             final ResultSet loadData = this.getSQLConnector().getResultSet(this.getTrxName());
  6.             // verificamos si tenemos resultado
  7.             if (loadData.next()) {
  8.                 // mostramos un log
  9.                 this.log.debug("Persistent Object found!");
  10.                 // recorremos las columnas de la tabla
  11.                 for (final CType column: this.getTable().getColumns())
  12.                     // cargamos la columna
  13.                     this.valuesOld.put(column, loadData.getObject(column.getColumnName()));
  14. ...

El error que obtengo es:
Código:
[ERROR]  PO:syncdb org.postgresql.util.PSQLException: ResultSet not positioned properly, perhaps you need to call next.
[ERROR]  PO:syncdb     org.postgresql.jdbc2.AbstractJdbc2ResultSet.checkResultSet(AbstractJdbc2ResultSet.java:2860)
[ERROR]  PO:syncdb     org.postgresql.jdbc2.AbstractJdbc2ResultSet.getObject(AbstractJdbc2ResultSet.java:2690)
[ERROR]  PO:syncdb     org.postgresql.jdbc2.AbstractJdbc2ResultSet.getObject(AbstractJdbc2ResultSet.java:2715)
[ERROR]  PO:syncdb     org.schimpf.sql.modeling.AbstractPersistentObject.load(AbstractPersistentObject.java:1183)
[ERROR]  PO:syncdb     org.schimpf.sql.modeling.AbstractPersistentObject.<init>(AbstractPersistentObject.java:198)
[ERROR]  PO:syncdb     org.schimpf.sql.modeling.AbstractPersistentObject.<init>(AbstractPersistentObject.java:234)
...
Como pueden ver en el codigo, luego de ejecutar la consulta SQL, obtengo el ResultSet y verifico si el mismo tiene filas invocando al metodo next(). Luego recorro las columnas y almaceno su valor en un HashMap. Ahora, el problema es que pasa el next() y salta la excepcion como si fuera que no se ejecuto el next(). Vuelvo a repetir, el mayor problema es que es aleatorio, por lo que no logro encontrar el motivo.

Las versiones que estoy ejecutando son:
Java SE 1.7.0_15-b03 (64bit)
PostgreSQL JDBC4 9.2-1002
PostgreSQL 8.4.16

Cualquier ayuda es bienvenida
Muchas Gracias
__________________
Hermann D. Schimpf
Visita mis repositorios de:
Clases Java: http://code.google.com/p/javaclassesrepository/
Clases PHP: http://code.google.com/p/phpclassesrepository/