gvSIG bugs #4428

Not error is shown when closing edition in a postgis layer that can not be saved with null values

Added by Francisco Puga over 7 years ago. Updated almost 7 years ago.

Status:Closed% Done:

0%

Priority:NormalSpent time:-
Assignee:Joaquín del Cerro Murciano
Category:Vector editing
Target version:2.4.0-2828
Severity:Critical Add-on version:
gvSIG version:2.3.1 Add-on build:
gvSIG build: Add-on resolve version:
Operative System: Add-on resolve build:
Keywords: Proyecto:
Has patch: Hito:
Add-on name:Unknown

Description

This is a very annoying behavior for the users. Related to #4010

Steps to reproduce:

1. Create a postgis layer like:

CREATE TABLE foo (
  gid SERIAL primary key,
  name text NOT NULL,
  geom geometry(point, 4326)
);

2. Load the layer in gvsig

3. Open edition and insert a point (do not insert alphanumeric data)

4. Close edition, saving

The layer is still in edition mode, and no error is shown to the user. Neither a pop-up, neither in the status bar. The log shows the correct error:

org.gvsig.vectorediting.lib.api.exceptions.EndEditingException: An error has been produced ending edition.
    at org.gvsig.vectorediting.swing.impl.DefaultEditingContext.saveChanges(DefaultEditingContext.java:949)
    at org.gvsig.vectorediting.swing.impl.DefaultEditingContext.doAction(DefaultEditingContext.java:554)
    at org.gvsig.vectorediting.swing.impl.DefaultEditingContext.endEdition(DefaultEditingContext.java:641)
    at org.gvsig.vectorediting.app.mainplugin.EditingExtension.execute(EditingExtension.java:124)
    at org.gvsig.app.project.documents.view.toc.actions.EndEditingTocMenuEntry.execute(EndEditingTocMenuEntry.java:72)
    at org.gvsig.app.project.documents.view.toc.AbstractTocContextMenuAction.execute(AbstractTocContextMenuAction.java:63)
    [....]
Caused by: org.gvsig.fmap.dal.exception.WriteException: Exception writing 'provider=PostgreSQL:url="jdbc:postgresql://localhost:5432/sixhiara":table="estacoes":user=postgres:driverclass=org.postgresql.Driver'.
    at org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.finishEditing(DefaultFeatureStore.java:1260)
    at org.gvsig.vectorediting.swing.impl.DefaultEditingContext.saveChanges(DefaultEditingContext.java:947)
    ... 45 more
Caused by: org.gvsig.fmap.dal.feature.exception.PerformEditingException: Can't perform changes in 'provider=PostgreSQL:url="jdbc:postgresql://localhost:5432/sixhiara":table="estacoes":user=postgres:driverclass=org.postgresql.Drivers'.
    at org.gvsig.fmap.dal.store.jdbc.JDBCStoreProviderWriter.performChanges(JDBCStoreProviderWriter.java:676)
    at org.gvsig.fmap.dal.feature.impl.DefaultFeatureStore.finishEditing(DefaultFeatureStore.java:1249)
    ... 46 more
Caused by: Error executing action in resource 'PostgreSQLResource(jdbc:postgresql://localhost:5432/sixhiara,postgres)'.
    at org.gvsig.fmap.dal.resource.spi.AbstractNonBlockingResource.execute(AbstractNonBlockingResource.java:59)
    at org.gvsig.fmap.dal.store.jdbc.JDBCHelper.doConnectionAction(JDBCHelper.java:294)
    at org.gvsig.fmap.dal.store.jdbc.JDBCStoreProviderWriter.performChanges(JDBCStoreProviderWriter.java:646)
    ... 47 more
Caused by: org.gvsig.fmap.dal.store.jdbc.exception.JDBCExecuteSQLException: Problems executing sql: INSERT INTO "inventario"."estacoes" ("estazon", "cod_estac", "tip_estac", "provincia", "distrito", "posto_adm", "nucleo", "altitude", "bacia", "subacia", "rio", "estado", "ano_const", "gestao", "n_tecnico", "responsab", "telefone", "ano_inici", "ano_fin", "n_anos", "frec_toma", "frec_regi", "nivel", "n_precis", "lin_em", "n_lin_em", "n_outros", "n_t_outro", "velocidad", "v_precis", "molinetes", "n_molinet", "v_outros", "v_t_outro", "caudal", "pluviomet", "tip_pluvi", "n_pluviom", "coment", "sac", "geom") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ST_GeomFromWKB(?,?)) 
    at org.gvsig.fmap.dal.store.jdbc.JDBCStoreProviderWriter.perfomInsert(JDBCStoreProviderWriter.java:447)
    at org.gvsig.fmap.dal.store.jdbc.JDBCStoreProviderWriter.performInserts(JDBCStoreProviderWriter.java:526)
    at org.gvsig.fmap.dal.store.jdbc.JDBCStoreProviderWriter$1.action(JDBCStoreProviderWriter.java:622)
    at org.gvsig.fmap.dal.store.jdbc.JDBCHelper$3.run(JDBCHelper.java:318)
    at org.gvsig.fmap.dal.resource.spi.AbstractResource.performExecution(AbstractResource.java:338)
    at org.gvsig.fmap.dal.resource.spi.AbstractNonBlockingResource.execute(AbstractNonBlockingResource.java:57)
    ... 49 more
Caused by: org.gvsig.fmap.dal.store.jdbc.exception.JDBCExecutePreparedSQLException: An JDBC exception was throw when execute SQL: 'INSERT INTO "inventario"."estacoes" ("estazon", "cod_estac", "tip_estac", "provincia", "distrito", "posto_adm", "nucleo", "altitude", "bacia", "subacia", "rio", "estado", "ano_const", "gestao", "n_tecnico", "responsab", "telefone", "ano_inici", "ano_fin", "n_anos", "frec_toma", "frec_regi", "nivel", "n_precis", "lin_em", "n_lin_em", "n_outros", "n_t_outro", "velocidad", "v_precis", "molinetes", "n_molinet", "v_outros", "v_t_outro", "caudal", "pluviomet", "tip_pluvi", "n_pluviom", "coment", "sac", "geom") VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ST_GeomFromWKB(?,?)) ' with params [null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, [B@1612ad11, 32737]
    at org.gvsig.fmap.dal.store.jdbc.JDBCStoreProviderWriter.perfomInsert(JDBCStoreProviderWriter.java:443)
    ... 54 more
Caused by: org.postgresql.util.PSQLException: ERROR: null value in column "cod_estac" violates not-null constraint
  Detail: Failing row contains (187, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, 0101000020E17F0000894FDE69A396124135740CFC6EC16041).
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2103)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1836)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:388)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:381)
    at org.apache.commons.dbcp.DelegatingPreparedStatement.execute(DelegatingPreparedStatement.java:169)
    at org.gvsig.fmap.dal.store.jdbc.JDBCHelper.execute(JDBCHelper.java:136)
    at org.gvsig.fmap.dal.store.jdbc.JDBCStoreProviderWriter.perfomInsert(JDBCStoreProviderWriter.java:441)
    ... 54 more

Associated revisions

Revision 43362
Added by Joaquín del Cerro Murciano almost 7 years ago

refs #4428, #4453.arreglado el que muestre una ventana pidiendo los valores requeridos al insertar un dato en una capa de BBDD en edicion. Tambien se han eliminado que intete incluir en el insert los valores de los campos automaticos.

Revision 363
Added by Joaquín del Cerro Murciano almost 7 years ago

refs #4428, #4453.arreglado el que muestre una ventana pidiendo los valores requeridos al insertar un dato en una capa de BBDD en edicion. Tambien se han eliminado que intete incluir en el insert los valores de los campos automaticos.

History

#1 Updated by Joaquín del Cerro Murciano almost 7 years ago

  • Severity changed from Minor to Critical
  • Target version set to 2.4.0-2828
  • Assignee set to Joaquín del Cerro Murciano

#2 Updated by Joaquín del Cerro Murciano almost 7 years ago

  • Status changed from New to Fixed

#3 Updated by Álvaro Anguix almost 7 years ago

  • Status changed from Fixed to Closed

Also available in: Atom PDF