Please address in 4.5.11.
See attached log. This is now happening on the Cumberland v.10 test install, which was converted from a translator. I strongly suspect that whatever is causing this problem is a byproduct of the v3x Translator conversion script. Whatever the error is below should fail more gracefully
info : Reading field names from data/translator/merges/NewFieldsSQLDump-fields.xml
info : drop index if exists partner_translator_import_NewFieldsSQLDump_index_field_1
info : create index partner_translator_import_NewFieldsSQLDump_index_field_1 on partner_translator_import_NewFieldsSQLDump(field_1 collate nocase)
error : Exception of type class groovy.lang.GroovyRuntimeException occurred processing script modules/seat/EsriTranslator/mapsets/Esri/translator/frontends/Esri.groovy
groovy.lang.GroovyRuntimeException: Could not find matching constructor for: com.partnersoft.modules.esri.ArcInfoFrontend(com.partnersoft.system.Module, com.partnersoft.maps.translator.DynamicMapTranslator, com.partnersoft.data.Naming)
groovy.lang.GroovyRuntimeException: Could not find matching constructor for: com.partnersoft.modules.esri.ArcInfoFrontend(com.partnersoft.system.Module, com.partnersoft.maps.translator.DynamicMapTranslator, com.partnersoft.data.Naming)
at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1481)
at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1397)
at org.codehaus.groovy.runtime.callsite.MetaClassConstructorSite.callConstructor(MetaClassConstructorSite.java:46)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:52)
This error seems to lead to a ClassCastException:
"{DB1B697A-3BB6-426A-98A2-6EE7A4C6AED3}" = Toolbox, "{DC64B6E4-DC0F-43BD-B4F5-F22385DCF055}" = Historical Marker, "{DC9EF677-1AA3-45A7-8ACD-303A5202D0DC}" = Workspace Extension, "{E6302665-416B-44FA-BE33-4E15916BA101}" = Survey Dataset, "{F3783E6F-65CA-4514-8315-CE3985DAD3B1}" = Folder, "{F8413DCB-2248-4935-BFE9-315F397E5110}" = Mosaic Dataset, "{FBDD7DD6-4A25-40B7-9A1A-ECC3D1172447}" = Tin, "{FFD09C28-FE70-4E25-907C-AF8E8A5EC5F3}" = Resource}
error : Error translating frontend Thread[Translator frontend com.partnersoft.modules.esri.translator.EsriFrontend@fae200,6,main]
java.lang.ClassCastException: com.partnersoft.modules.esri.model.EsriFeatureDataset cannot be cast to java.lang.Comparable
java.lang.ClassCastException: com.partnersoft.modules.esri.model.EsriFeatureDataset cannot be cast to java.lang.Comparable
at java.util.TreeMap.put(Unknown Source)
at java.util.TreeSet.add(Unknown Source)
at com.partnersoft.data.IndexedIdentifiableSet.add(IndexedIdentifiableSet.java:70)
at com.partnersoft.data.IndexedIdentifiableSet.add(IndexedIdentifiableSet.java:13)
at com.partnersoft.modules.esri.model.EsriGeodatabase.loadMetadata(EsriGeodatabase.java:103)
at com.partnersoft.modules.esri.model.EsriGeodatabase.open(EsriGeodatabase.java:60)
at com.partnersoft.modules.esri.translator.EsriFrontend.translateImp(EsriFrontend.java:114)
at com.partnersoft.maps.translator.AbstractMapTranslatorFrontend$1.run(AbstractMapTranslatorFrontend.java:61)
com.partnersoft.modules.esri.model.EsriFeatureDataset cannot be cast to java.lang.Comparable
info : Translated frontend com.partnersoft.modules.esri.translator.EsriFrontend@fae200 in 00:00.02
Let me know what all you need for this.
I tested this with a basic ESRI module with Central GA’s data. I got the same errors as above. It looks different in the Futura module. I have a sneaky suspicion there are method signatures that are not matching up. ESRI error resembles the above scenario, while the Futura error is nice enough to give geometry bytes. Below are sample errors from each:
ESRI:
Pointed at database named cgemc.mdb
info : Connecting to translation database.
info : Connected to translation database.
error : Exception of type class groovy.lang.GroovyRuntimeException occurred processing script modules/seat/EsriTranslator/mapsets/Esri/translator/frontends/Esri.groovy
groovy.lang.GroovyRuntimeException: Could not find matching constructor for: com.partnersoft.modules.esri.ArcInfoFrontend(com.partnersoft.system.Module, com.partnersoft.maps.translator.DynamicMapTranslator, com.partnersoft.data.Naming)
groovy.lang.GroovyRuntimeException: Could not find matching constructor for: com.partnersoft.modules.esri.ArcInfoFrontend(com.partnersoft.system.Module, com.partnersoft.maps.translator.DynamicMapTranslator, com.partnersoft.data.Naming)
at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1481)
at groovy.lang.MetaClassImpl.invokeConstructor(MetaClassImpl.java:1397)
at org.codehaus.groovy.runtime.callsite.MetaClassConstructorSite.callConstructor(MetaClassConstructorSite.java:46)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallConstructor(CallSiteArray.java:52)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:190)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callConstructor(AbstractCallSite.java:206)
at modules_seat_EsriTranslator_mapsets_Esri_translator_frontends_Esri_groovy.run(modules_seat_EsriTranslator_mapsets_Esri_translator_frontends_Esri_groovy:3)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:706)
at groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:44)
at groovy.lang.Script.invokeMethod(Script.java:78)
at com.partnersoft.scripting.GroovyScript.runScriptImp(GroovyScript.java:63)
at com.partnersoft.scripting.AbstractScript.runScript(AbstractScript.java:168)
at com.partnersoft.scripting.AbstractScript.run(AbstractScript.java:211)
at com.partnersoft.maps.model.MapSet.translate(MapSet.java:368)
at com.partnersoft.maps.model.RoverSet.publish(RoverSet.java:382)
at com.partnersoft.maps.translator.PublishMapSet.runImp(PublishMapSet.java:124)
at com.partnersoft.maps.translator.PublishMapSet.run(PublishMapSet.java:168)
at java.lang.Thread.run(Unknown Source)
Could not find matching constructor for: com.partnersoft.modules.esri.ArcInfoFrontend(com.partnersoft.system.Module, com.partnersoft.maps.translator.DynamicMapTranslator, com.partnersoft.data.Naming)
Futura: Also pointed at database named cgemc.mdb (same)
Soldiering on.
ERROR 2012-02-27 10:20:23,285 [Publisher] (com.partnersoft.modules.esri.GeodatabaseFeature)
Error interpreting shapes
java.lang.NoClassDefFoundError: com/partnersoft/formats/shapefile/ShpShapeLib
at com.partnersoft.modules.esri.GeodatabaseFeature.process(GeodatabaseFeature.java:431)
at com.partnersoft.modules.esri.GeodatabaseFeature.process(GeodatabaseFeature.java:99)
at com.partnersoft.modules.esri.ArcInfoFrontend.parseData(ArcInfoFrontend.java:175)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoCachedMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:229)
at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:52)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:40)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:124)
at modules_seat_FuturaTranslator_mapsets_Landbase_translator_frontends_Esri_groovy.run(modules_seat_FuturaTranslator_mapsets_Landbase_translator_frontends_Esri_groovy:87)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:88)
at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:233)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1058)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:886)
at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:706)
at groovy.lang.GroovyObjectSupport.invokeMethod(GroovyObjectSupport.java:44)
at groovy.lang.Script.invokeMethod(Script.java:78)
at com.partnersoft.scripting.GroovyScript.runScriptImp(GroovyScript.java:63)
at com.partnersoft.scripting.AbstractScript.runScript(AbstractScript.java:168)
at com.partnersoft.scripting.AbstractScript.run(AbstractScript.java:211)
at com.partnersoft.maps.model.MapSet.translate(MapSet.java:368)
at com.partnersoft.maps.model.RoverSet.publish(RoverSet.java:382)
at com.partnersoft.maps.translator.PublishMapSet.runImp(PublishMapSet.java:124)
at com.partnersoft.maps.translator.PublishMapSet.run(PublishMapSet.java:168)
at java.lang.Thread.run(Unknown Source)
ERROR 2012-02-27 10:20:23,285 [Publisher] (com.partnersoft.modules.esri.GeodatabaseFeature)
geometryBytes = 03000000809e181854ac40412029b3b9d6ae324118bac80bebba40418047704695ce324101000000260000000000000040658c56c9ba40412029b3b9d6ae3241002581fca7ba4041600d76b307af324188a337e6c9ba40410083bd6ad1af324118bac80bebba4041c0f5715199b03241080a6034dfb94041a02cb273bfb03241085c8e7316b940410070890013b132410032011e25b84041a0f73c4974b132411853f1bf49b74041402e43e2cab1324190cf4dab83b64041c024cc2e4bb23241b0ed6b5d7eb54041a0aa381f5fb23241f8b185878bb44041c0ce77c370b23241b03d97127db34041c04ea70d88b232419868099770b240418042c58499b232415879a3eb76b24041a0f927132ab4324160c2782d7cb24041a0fdf6e9b9b53241700748d780b24041c0875e7c52b7324188913b0482b2404160e66246f9b83241703e4c9282b24041c02027ca98ba324168165da380b24041003b56371fbc32415020e16d80b2404120ce25bcbebd3241e070e568c2b14041c08fd636c6bd324130fe7f9efab04041e0b87e94cbbd324148482d5f32b04041a0dc8269d2bd324168d0c0a276af4041c0bf1140d6bd32414005cfff7faf404140f84fc756bf324138f29a5789af4041c0676ac1ccc032410039fd1992af404120458c8f50c23241883e75b39aaf4041e03a80d1d1c3324120a132849eaf4041800be9f68cc53241c00fb8f7a4af4041804ef7035fc7324150203fc5acaf404180cd850c25c9324110309dccb3af4041803dfc0b3ecb3241889a0921bbaf40412021a2c453cd3241005ca1ebb6ae4041c046dda756cd3241e85f8816b4ad4041201ac72d59cd3241c8c0655cacac4041c092746157cd324190463e827dac4041a0572a1507ce3241809e181854ac40418047704695ce3241
ERROR 2012-02-27 10:20:23,285 [Publisher] (com.partnersoft.modules.esri.GeodatabaseFeature)
shape = null
A little sanity testing, I created a base EsriPublisher install, pointed to Talquin’s v.10 database, and get the following error. Whole log attached. Base Esri install in T:\preavis\bugs\v.10\dumbEsriPublisher. Log snippet:
info : Loaded item types and UUIDs: {"{28DA9E89-FF80-4D6D-8926-4EE2B161677D}" = Dataset, "{35B601F7-45CE-4AFF-ADB7-7702D3839B12}" = Raster Catalog, "{4ED4A58E-621F-4043-95ED-850FBA45FCBC}" = Replica, "{5ED667A3-9CA9-44A2-8029-D95BF23704B9}" = Raster Dataset, "{70737809-852C-4A03-9E22-2CECEA5B9BFA}" = Feature Class, "{73718A66-AFB9-4B88-A551-CFFA0AE12620}" = Geometric Network, "{74737149-DCB5-4257-8904-B9724E32A530}" = Feature Dataset, "{76357537-3364-48AF-A4BE-783C7C28B5CB}" = Terrain, "{767152D3-ED66-4325-8774-420D46674E07}" = Topology, "{77292603-930F-475D-AE4F-B8970F42F394}" = Extension Dataset, "{7771FC7D-A38B-4FD3-8225-639D17E9A131}" = Network Dataset, "{787BEA35-4A86-494F-BB48-500B96145B58}" = Catalog Dataset, "{8405ADD5-8DF8-4227-8FAC-3FCADE073386}" = Item, "{8637F1ED-8C04-4866-A44A-1CB8288B3C63}" = Domain, "{8C368B12-A12E-4C7E-9638-C9C64E69E98F}" = Coded Value Domain, "{A300008D-0CEA-4F6A-9DFA-46AF829A3DF2}" = Representation Class, "{A3803369-5FC2-4963-BAE0-13EFFC09DD73}" = Parcel Fabric, "{B606A7E1-FA5B-439C-849C-6E9C2481537B}" = Relationship Class, "{C29DA988-8C3E-45F7-8B5C-18E51EE7BEB4}" = Range Domain, "{C673FE0F-7280-404F-8532-20755DD8FC06}" = Workspace, "{CD06BC3B-789D-4C51-AAFA-A467912B8965}" = Table, "{D4912162-3413-476E-9DA4-2AEFBBC16939}" = null, "{D5A40288-029E-4766-8C81-DE3F61129371}" = Schematic Dataset, "{D98421EB-D582-4713-9484-43304D0810F6}" = Replica Dataset, "{DB1B697A-3BB6-426A-98A2-6EE7A4C6AED3}" = Toolbox, "{DC64B6E4-DC0F-43BD-B4F5-F22385DCF055}" = Historical Marker, "{DC9EF677-1AA3-45A7-8ACD-303A5202D0DC}" = Workspace Extension, "{E6302665-416B-44FA-BE33-4E15916BA101}" = Survey Dataset, "{F3783E6F-65CA-4514-8315-CE3985DAD3B1}" = Folder, "{F8413DCB-2248-4935-BFE9-315F397E5110}" = Mosaic Dataset, "{FBDD7DD6-4A25-40B7-9A1A-ECC3D1172447}" = Tin, "{FFD09C28-FE70-4E25-907C-AF8E8A5EC5F3}" = Resource}
error : Error translating frontend Thread[Translator frontend com.partnersoft.modules.esri.translator.EsriFrontend@6ca3ef,6,main]
java.lang.ClassCastException: com.partnersoft.modules.esri.model.EsriWorkspace cannot be cast to java.lang.Comparable
java.lang.ClassCastException: com.partnersoft.modules.esri.model.EsriWorkspace cannot be cast to java.lang.Comparable
at java.util.TreeMap.put(Unknown Source)
at java.util.TreeSet.add(Unknown Source)
at com.partnersoft.data.IndexedIdentifiableSet.add(IndexedIdentifiableSet.java:70)
at com.partnersoft.data.IndexedIdentifiableSet.add(IndexedIdentifiableSet.java:13)
at com.partnersoft.modules.esri.model.EsriGeodatabase.loadMetadata(EsriGeodatabase.java:103)
at com.partnersoft.modules.esri.model.EsriGeodatabase.open(EsriGeodatabase.java:60)
at com.partnersoft.modules.esri.translator.EsriFrontend.translateImp(EsriFrontend.java:114)
at com.partnersoft.maps.translator.AbstractMapTranslatorFrontend$1.run(AbstractMapTranslatorFrontend.java:61)
com.partnersoft.modules.esri.model.EsriWorkspace cannot be cast to java.lang.Comparable
info : Translated frontend com.partnersoft.modules.esri.translator.EsriFrontend@6ca3ef in 00:00.11
info : Closing translation database.
info : Translation database closed.
Version mismatch due to the branch to 4.5.11. Should be fixed now.
This is still broken for my generic ESRI test case, which is the data that I use for the training class, using the following roll:
The error still looks like errors in posts above:
groovy.lang.GroovyRuntimeException: Could not find matching constructor for: com.partnersoft.modules.esri.ArcInfoFrontend(com.partnersoft.system.Module, com.partnersoft.maps.translator.DynamicMapTranslator, com.partnersoft.data.Naming)
at groovy.lang
So, I set up a brand new 4.5.11 install (which yielded this minor error: [#2177], and still got the same error. I think we are narrowing the problem down.
Checked in my source data to EsriTroubleshooting module (resources/SmallMDB_SouthPlainsClassData.zip). You should see the problem immediately after setting up an EsriTranslator from 4.5.11.
So the EsriTranslator module has this error, where others such as FuturaTranslator,TelventTranslator, etc, don’t. A difference that I see is in the Esri.groovy file. For the EsriTranslator module, the mapsets/Esri/translator/frontends/Esri.groovy file looks like this:
import com.partnersoft.modules.esri.ArcInfoFrontend;
frontend = new ArcInfoFrontend(module, translator, settings);
frontend.translate();
In contrast, the same file in the TelventTranslator module looks like this:
import com.partnersoft.modules.esri.*;
import com.partnersoft.sql.*;
import com.partnersoft.system.*;
import com.partnersoft.data.NameSet;
import com.partnersoft.data.ConversionLib;
import com.partnersoft.cog.Cog;
// settings
settingsCog = new Cog(settings);
// only run if pre-v10
esriVersion = settingsCog.getInt("esriVersion");
if (esriVersion >= 10)
return;
public readTextSettings( String settingsFileThing ) {
returnThing = new NameSet();
reader = new BufferedReader(new StringReader(settings.get(settingsFileThing)));
String currentLine = null;
while ((currentLine = reader.readLine()) != null) {
currentLine = currentLine.trim();
if (currentLine != null) {
returnThing.add(currentLine);
}
}
reader.close();
return returnThing;
}
includeTablesList = settingsCog.getStringAsLines("includeTables");
ignoreTablesList = settingsCog.getStringAsLines("ignoreTables");
rotationFieldsList = settingsCog.getStringAsLines("rotationFields");
includeTablesSet = new NameSet(includeTablesList);
ignoreTablesSet = new NameSet(ignoreTablesList);
rotationFieldsSet = new NameSet(rotationFieldsList);
// read text lists, single item per line, from settings.xml into namings
setIncludeTables = readTextSettings("includeTables");
setIgnoreTables = readTextSettings("ignoreTables");
rotationFields = readTextSettings("rotationFields");
// read numbers and single fields from settings.xml
maximumRecords = settingsCog.getInt("maximumRecords");
databasePath = settingsCog.getString("sourceDirectory");
setDebugObjectIDs = settingsCog.getBoolean("debugObjectIDs");
database = null;
if (SystemServices.environment().isWindows()) {
database = new SqlDatabase();
database.setType("Access");
database.setPath(databasePath);
}
else {
log.error("Sorry, can only translate Access geodatabases on Windows.");
return;
}
// set up source coordinate system
sourceProjection = settings.get("sourceProjection").trim();
sourceUnits = settings.get("sourceUnits").trim();
log.info("sourceProjection is:"+sourceProjection+":");
if (!sourceProjection.equals("") && !sourceUnits.equals("")) {
log.warn("If no sourceProjection, shouldn't see this.");
translator.setSourceProjectionAndUnits(sourceProjection, sourceUnits);
}
// set up frontend
frontend = new ArcInfoFrontend();
if (setIncludeTables) frontend.setIncludeTables(setIncludeTables);
if (setIgnoreTables) frontend.setIgnoreTables(setIgnoreTables);
if (setDebugObjectIDs) frontend.setDebugObjectIDs(setDebugObjectIDs);
frontend.setModule(module);
frontend.setDatabase(database);
frontend.setRotationFields(rotationFieldsSet);
frontend.setRotationScaleFactor(1);
frontend.setRotationOffset(0);
frontend.setPersonalGeodatabase(true);
frontend.setRecordLimit(maximumRecords);
frontend.setSplitDataTypes(ConversionLib.forceToBoolean(settings.get("splitDataTypes")));
frontend.setSplitGraphicTypes(ConversionLib.forceToBoolean(settings.get("splitGraphicTypes")));
// actuall start translator
frontend.parseData(translator);
More version mismatch. The modules Thrane copied for the release branch are ancient at this point. I’m going to go ahead and merge in all the changes to date and then back out the SQL stuff, just like I did for the core platform.
This should be resolved. The shorter version of that script is the correct one; I moved all the tedious setting code into the Java part. Besides, having long scripts that are copied and maintained separately is a really bad idea.
Fixed in:
This might be solved. Further testing.
Calling this one fixed.