Thanks for joining us on the user list Juan. I expect we will need to
report this to the issue tracker.

Quickly looking at the source code of that class we can see one reference
to LINEARIZATION_TOLERANCE:

        Double linearizationTolerance = (Double)
hints.get(Hints.LINEARIZATION_TOLERANCE);
        if (linearizationTolerance != null) {
            geometryFactory = new CurvedGeometryFactory(geometryFactory,
linearizationTolerance);
        }

So this looks to be at the java code, and not part of your MySQL setup. I
am confused about why this would be different between windows and linux
however?


--
Jody Garnett

On 22 April 2015 at 15:14, Juan Felipe Arjona <jfarj...@jfarjona.com> wrote:

>  Hello:
>
> I am running geotools 13.0.
>
> I have an application that creates Point shapes. My application then
> writes these features in a shapefile and then into MySQL.
>
> When I run the code under Windows, everything works perfect: the data is
> properly stored in MySQL and I can use it without any trouble.
>
> When I run the code under Linux, shapefiles are created, but the data is
> not written in MySQL and the following exception is thrown:
>
> [CODE]
> WARNING: class org.geotools.filter.function.Collection_NearestFunction has
> name conflict betwee 'null' and 'Collection_Nearest'
> Exception in thread "main" java.lang.NoSuchFieldError:
> LINEARIZATION_TOLERANCE
> at org.geotools.jdbc.JDBCFeatureReader.init(JDBCFeatureReader.java:211)
> at org.geotools.jdbc.JDBCFeatureReader.<init>(JDBCFeatureReader.java:137)
> at
> org.geotools.jdbc.JDBCInsertFeatureWriter.<init>(JDBCInsertFeatureWriter.java:43)
> at
> org.geotools.jdbc.JDBCFeatureStore.getWriterInternal(JDBCFeatureStore.java:280)
> at
> org.geotools.data.store.ContentFeatureStore.getWriter(ContentFeatureStore.java:151)
> at
> org.geotools.data.store.ContentFeatureStore.getWriter(ContentFeatureStore.java:122)
> at
> org.geotools.data.store.ContentFeatureStore.getWriterAppend(ContentFeatureStore.java:263)
> at
> org.geotools.data.store.ContentFeatureStore.addFeatures(ContentFeatureStore.java:242)
> at
> com.technip.projects.gis.GISGenerator.writeShapesMySQL(GISGenerator.java:763)
> at
> com.technip.projects.gis.GISGenerator.generatePlatforms(GISGenerator.java:416)
> at
> com.technip.projects.gis.GISGenerator.createShapefiles(GISGenerator.java:249)
> at Machine.run(Machine.java:739)
> at Machine.main(Machine.java:329)
> [/CODE]
>
> My code:
>
> [CODE]
> private void writeShapesMySQL(List<SimpleFeature> features) throws
> IOException {
>     SimpleFeatureType TYPE = null;
>
>     if (!features.isEmpty()) {
>         TYPE = features.get(0).getType();
>
>         // Drop the table if exists
>         try (Connection con = conf.requestConnection("gis")) {
>             con.prepareCall("DROP TABLE IF EXISTS " + TYPE.getTypeName() +
> ";").execute();
>         } catch (Exception e) {}
>         if (factory == null) {
>             initMySQLStore();
>         }
>
>         SimpleFeatureCollection collection = new
> ListFeatureCollection(TYPE, features);
>
>         gisDS.createSchema(TYPE);
>
>         Transaction transaction = new DefaultTransaction("create");
>         String      typeName    = null;
>
>         for (String s : gisDS.getTypeNames()) {
>             if (s.equalsIgnoreCase(TYPE.getTypeName())) {
>                 typeName = s;
>                 break;
>             }
>         }
>         if (typeName == null) {
>             log.error("Cannot find the type " + TYPE.getTypeName() + " in
> the known types: " + String.valueOf(gisDS.getTypeNames()));
>             throw new IOException("Cannot find type " + TYPE.getTypeName()
> + " -- in other words, developer sucks.");
>         }
>
>         SimpleFeatureSource featureSource =
> gisDS.getFeatureSource(typeName);
>
>         // System.out.println("SHAPE:"+SHAPE_TYPE);
>         if (featureSource instanceof SimpleFeatureStore) {
>             SimpleFeatureStore featureStore = (SimpleFeatureStore)
> featureSource;
>
>             featureStore.setTransaction(transaction);
>             try {
>                 log.info("Adding " + collection.size() + " features into
> " + TYPE.getTypeName() + " table.");
>                 featureStore.addFeatures(collection);
>                 transaction.commit();
>             } catch (Exception problem) {
>                 log.error("Cannot create shapes in MySQL for " +
> TYPE.getTypeName(), problem);
>                 transaction.rollback();
>             } finally {
>                 transaction.close();
>             }
>         }
>     } else {
>         log.warn("Passed empty list to create GIS database.");
>     }
> }
>
>  private void initMySQLStore() throws IOException {
>     factory = new MySQLDataStoreFactory();
>
>     Map conMap = new HashMap();
>
>     conMap.put("dbtype", "mysql");
>     conMap.put("host", conf.getDbserver());
>     conMap.put("port", "3306");
>     conMap.put("database", "gis");
>     conMap.put("user", conf.getDbuser());
>     conMap.put("passwd", conf.getDbpass());
>
>     gisDS = factory.createDataStore(conMap);
>
>     Map<Class<?>, Integer> classMappings =
> gisDS.getClassToSqlTypeMappings();
>
>     classMappings.put(String.class, new Integer(Types.LONGVARCHAR));
> }
> [/CODE]
>
>
> My first hint is that MySQL is case sensitive in Linux, but not in
> Windows. So I checked the created tables both in Linux and Windows, and
> none of them has a field with such a name (LINEARIZATION_TOLERANCE).
>
> Any hints?
>
> Help is highly appreciated, I am clueless on what may be happening.
>
> Thanks,
>
>
> Juan
> PS. I have posted this question in StackOverflow also (
> http://stackoverflow.com/questions/29809724/geotools-13-error-writing-to-mysql-in-linux
> ).
>
>
>
>
> ------------------------------------------------------------------------------
> BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
> Develop your own process in accordance with the BPMN 2 standard
> Learn Process modeling best practices with Bonita BPM through live
> exercises
> http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual-
> event?utm_
> source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
> _______________________________________________
> GeoTools-GT2-Users mailing list
> GeoTools-GT2-Users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users
>
>
------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
GeoTools-GT2-Users mailing list
GeoTools-GT2-Users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users

Reply via email to