#2156

Esri Publisher broken

Status: Fixed
Priority: Blocker
Milestone: 4.5.12
Component: Publisher
Branch: 4.5
Assigned To:
Unassigned

Feb 20 2012 * 19:06
John Dolezal

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.

Comments and Changes

Feb 27 2012 * 17:42
Dan Wentworth

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
Feb 29 2012 * 17:16
John Dolezal
  • Priority changed from Normal to Blocker
  • Attachment added: partner.log

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.
Mar 16 2012 * 20:19
Paul Reavis
  • Status changed from Open to Testing
  • Assigned user changed from Paul Reavis to John Dolezal

Version mismatch due to the branch to 4.5.11. Should be fixed now.

Mar 19 2012 * 15:43
John Dolezal
  • Status changed from Testing to Open
  • Assigned user changed from John Dolezal to Paul Reavis
  • Attachment added: partner.log

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:

  • Partner platform build: Build 3437 @ 2012-03-16 16:08:34 (partner/releases/4.5.11)
  • Esri, 4.5.11, build 8716, 2012-02-01 12:39:31 (modules/releases/4.5.11/Esri)
  • EsriTranslator, 4.5.11, build 8717, 2012-02-01 12:40:35 (modules/releases/4.5.11/EsriTranslator)

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.

Mar 19 2012 * 15:52
John Dolezal

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.

Mar 20 2012 * 17:26
John Dolezal

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);
Mar 21 2012 * 13:44
Paul Reavis

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.

Mar 22 2012 * 15:26
Paul Reavis
  • Status changed from Open to Testing
  • Assigned user changed from Paul Reavis to Richard Fay

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:

  • EsriTranslator
  • StarEnergyTranslator
  • FuturaTranslator
  • TelventTranslator
Mar 22 2012 * 17:05
Richard Fay
  • Assigned user changed from Richard Fay to John Dolezal
Mar 29 2012 * 16:18
John Dolezal

This might be solved. Further testing.

Apr 11 2012 * 14:11
John Dolezal
  • Status changed from Testing to Fixed
  • Assigned user reset (from John Dolezal)

Calling this one fixed.