Hi, GeoServer 2.18.0 with embedded GWC: after adding new "Gridset" (here, "WGS 84 / UTM Zone 34N (EPSG:32634)") in section "Tile Caching" of a layer, I got this error:
--------------- ERROR [geoserver.gwc] - Failed to get a quota store, the GeoWebCache disk quota subsystem will stop working now org.springframework.dao.ConcurrencyFailureException: Failed to create or locate tileset TileSet[messir:countries_and_water#WGS 84 / UTM Zone 34N (EPSG:32634)#image/png#408a9289e97a734867475b5c5178621c355e6e28] after 100 attempts; nested exception is org.geowebcache.diskquota.jdbc.ParametricDataAccessException: Failed to execute statement INSERT INTO TILESET select :key, :layerName, :gridSetId, :blobFormat, :parametersId, 0 WHERE NOT EXISTS(SELECT 1 FROM TILESET WHERE KEY = :key) with params: {blobFormat=image/png, gridSetId=WGS 84 / UTM Zone 34N (EPSG:32634), layerName=messir:countries_and_water, parametersId=408a9289e97a734867475b5c5178621c355e6e28, key=messir:countries_and_water#WGS 84 / UTM Zone 34N (EPSG:32634)#image/png#408a9289e97a734867475b5c5178621c355e6e28}; nested exception is org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO TILESET select ?, ?, ?, ?, ?, 0 WHERE NOT EXISTS(SELECT 1 FROM TILESET WHERE KEY = ?)]; SQL state [90005]; error code [90005]; Value too long for column GRIDSET_ID VARCHAR(32): 'WGS 84 / UTM Zone 34N (EPSG:32634)' (34); SQL statement: INSERT INTO TILESET select ?, ?, ?, ?, ?, 0 WHERE NOT EXISTS(SELECT 1 FROM TILESET WHERE KEY = ?) [90005-119]; nested exception is org.h2.jdbc.JdbcSQLException: Value too long for column GRIDSET_ID VARCHAR(32): 'WGS 84 / UTM Zone 34N (EPSG:32634)' (34); [... ETC ...] Caused by: org.geowebcache.diskquota.jdbc.ParametricDataAccessException: Failed to execute statement INSERT INTO TILESET select :key, :layerName, :gridSetId, :blobFormat, :parametersId, 0 WHERE NOT EXISTS(SELECT 1 FROM TILESET WHERE KEY = :key) with params: {blobFormat=image/png, gridSetId=WGS 84 / UTM Zone 34N (EPSG:32634), layerName=messir:countries_and_water, parametersId=408a9289e97a734867475b5c5178621c355e6e28, key=messir:countries_and_water#WGS 84 / UTM Zone 34N (EPSG:32634)#image/png#408a9289e97a734867475b5c5178621c355e6e28}; nested exception is org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO TILESET select ?, ?, ?, ?, ?, 0 WHERE NOT EXISTS(SELECT 1 FROM TILESET WHERE KEY = ?)]; SQL state [90005]; error code [90005]; Value too long for column GRIDSET_ID VARCHAR(32): 'WGS 84 / UTM Zone 34N (EPSG:32634)' (34); SQL statement: [... ETC ...] Caused by: org.springframework.jdbc.UncategorizedSQLException: PreparedStatementCallback; uncategorized SQLException for SQL [INSERT INTO TILESET select ?, ?, ?, ?, ?, 0 WHERE NOT EXISTS(SELECT 1 FROM TILESET WHERE KEY = ?)]; SQL state [90005]; error code [90005]; Value too long for column GRIDSET_ID VARCHAR(32): 'WGS 84 / UTM Zone 34N (EPSG:32634)' (34); SQL statement: [... ETC ...] Caused by: org.h2.jdbc.JdbcSQLException: Value too long for column GRIDSET_ID VARCHAR(32): 'WGS 84 / UTM Zone 34N (EPSG:32634)' (34); SQL statement: [... ETC ...] ----------------- Indeed, GWC has hardcoded value "GRIDSET_ID VARCHAR(32)" (see code below), while obviously GeoServer has strings with length > 32 chars to be recorded in this column. Any idea on how to fix this (without rebuilding GeoServer)? Many thanks, Victor Sinceac PS: I posted the same on "users" forum, but I guess "dev" forum is more appropriate... geowebcache-master\geowebcache\diskquota\jdbc\src\main\java\org\geowebcache\diskquota\jdbc\SQLDialect.java // size guesses: 128 characters should be more than enough for layer name, the gridset id // is normally an epsg code so 32 is way more than enough, the blob format // is normally a mime plus some extras, again 64 should fit, a param id is // a SHA-1 sum that uses 41 chars, the id is the sum of all the above plus // connecting chars, 320 is again more than enough // bytes is going to be less than a zettabyte(one million petabytes, 10^21) for the // foreseeable future .... protected static final int GRIDSET_ID_SIZE = 32; ..... protected final Map<String, List<String>> TABLE_CREATION_MAP = new LinkedHashMap<String, List<String>>() { { put( "TILESET", Arrays.asList( // "CREATE TABLE ${schema}TILESET (\n" + // .... " GRIDSET_ID VARCHAR(" + GRIDSET_ID_SIZE + "),\n" ..... -- Sent from: http://osgeo-org.1560.x6.nabble.com/GeoServer-Dev-f3819232.html _______________________________________________ Geoserver-devel mailing list Geoserver-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geoserver-devel