Support Independent incidents from Cybertracker
For Phase 1, we need the following from Refractions:
1) Alternate configurable model XML file in addition to the files below, e.g. cm_model_incident.xml:
2) Changes to the project.json file to specify any additional configuration that may be required.
3) SMART Connect should support import the independent incident JSON. We request that the format be the same or similar to the JSON produced already.
4) SMART UX must support selecting an additional configurable model. Add an additional drop down called “Independent Incident Configurable Model” on this dialog:
1) Alternate configurable model XML file in addition to the files below, e.g. cm_model_incident.xml:
2) Changes to the project.json file to specify any additional configuration that may be required.
3) SMART Connect should support import the independent incident JSON. We request that the format be the same or similar to the JSON produced already.
4) SMART UX must support selecting an additional configurable model. Add an additional drop down called “Independent Incident Configurable Model” on this dialog:
Leave a comment
Emily's Task List Email:
task list for supporting Independent Incidents in Cybertracker. Let me know if you think I missed something.
1) Create a new Independent Incident Cybertracker Plug-in
2) Update the Connect Independent incident data processor plugin to support json data as well as xml data.
-> we won't create a ct specific plugin here; instead we'll just support JSON data that way other people who want to upload json data can use the same tools
3) Update Connect to support uploading of incident JSON data.
4) Add extension point to the Patrol and Survey Export Dialog to allow the Incident CT Plugin to add UI for selecting the Configuration Model to use ( and maybe the endpoint to send data to).
5) Implement extension point above for both patrols and surveys. Add the necessary items to the project.json file in the CT export package as well as the configurable model xml.
task list for supporting Independent Incidents in Cybertracker. Let me know if you think I missed something.
1) Create a new Independent Incident Cybertracker Plug-in
2) Update the Connect Independent incident data processor plugin to support json data as well as xml data.
-> we won't create a ct specific plugin here; instead we'll just support JSON data that way other people who want to upload json data can use the same tools
3) Update Connect to support uploading of incident JSON data.
4) Add extension point to the Patrol and Survey Export Dialog to allow the Incident CT Plugin to add UI for selecting the Configuration Model to use ( and maybe the endpoint to send data to).
5) Implement extension point above for both patrols and surveys. Add the necessary items to the project.json file in the CT export package as well as the configurable model xml.
Added a new plugin (CyberTracker Independent Incidents) which must be installed to get the support. Once installed users will have the option to export an independent incident module in the export. If selected the project.json includes the following:
This points to the incident metadata json, the configurable model to display and the decoder. The metadata and definition files are included in the zip package.
"incident": {
"metadata": "incident_metadata.json",
"definition": "incident_model.xml",
"decoder": "sourceparser_smartconfigurabledatamodel"
}
This points to the incident metadata json, the configurable model to display and the decoder. The metadata and definition files are included in the zip package.
We can use a JSON format similar to the Patrols but we need some sort of additional support for the "Add to Last" vs. "Add as New Waypoint" feature.
I was wondering if it might not make sense to just call it “SMART_SightingGroupId” and have it behave the same way on both independent incidents and regular sightings, i.e. the rules are:
I like the use of “SMART_Datatype” to differentiate.
Other than that, incident JSON is the same minus the patrol metadata.
We could re-use SMART_ObsCounter as an orthogonal counter and use it for debugging.
I was wondering if it might not make sense to just call it “SMART_SightingGroupId” and have it behave the same way on both independent incidents and regular sightings, i.e. the rules are:
- Save generates a new UUID
- Save & Continue re-uses the last UUID or generates one if it’s the first observation
- SMART_NewWaypoint is true for “Save” and the first “Save & Continue” (but false for subsequent “Save & Continue”)
I like the use of “SMART_Datatype” to differentiate.
- "SMART_DataType": "incident"
Other than that, incident JSON is the same minus the patrol metadata.
We could re-use SMART_ObsCounter as an orthogonal counter and use it for debugging.
For Patrols (and Surveys) we are going to continue to use the SMART_ObsCounter for importing data so that we can use the same code for the old and new cybertracker processing. When support for the old cybertracker version is no longer required we can upgrade our code so we no longer use the SMART_ObsCounter.
Added support for importing. The assumption is the json looks similar to the following. Note the ObsCounter has to restart at 1 for each unique incident and the SMART_SightingGroupId is required and must be a uuid.
{
"type": "FeatureCollection", "features": [
{ "type": "Feature",
"geometry": { "type": "Point", "coordinates": [-123.364758, 48.426900] },
"properties": {
"dateTime": "2018-03-07T18:54:00.0-08:00",
"deviceId": "00000000-5701-5f15-6fb1-80c73416dd38",
"ctVersion": "3.476",
"dbName": "KEY:SMART6df1078da4574517913453a7a31232db",
"appName": "TestConnectProcessing",
"id": "77dc6377-c973-6255-ccf3-73a5d01c31a3",
"latitude": 48.426900,
"longitude": -123.364758,
"altitude": 70.738003,
"accuracy": 2.400000,
"sighting": {
"SMART_DataType": "incident",
"c:0": "e9b785bb5c554868a2b2de7839ea0a81",
"a:0:dbc706df059a4b64b50910b02d3191d8": "First Observation",
"a:0:981b5898d6334707a677d64f1febd709": "l:f029f4fd708d4407b36b61e169deeeee",
"a:0:de9452a83246458eb7f3c3ecd84005a4": 11,
"SMART_DefaultAttributeValues": "{}",
"SMART_NewWaypoint": "true",
"SMART_ObsCounter": 1.000000,
"SMART_SightingGroupId": "718f0da731e94b0fa2167bf0c4c084ce"
}
}
}
]}
A sample export of my doing a test patrol on CT1.0.78(100) with 3 obs and 1 ind. incident: I'm not sure why we have two separate files, I will ask Justin about that. I get errors loading these files, pasted below:
CTDATA_00001_eeb9320c-b8bf-4601-8e68-4e80a60be27c_Track.json
CTDATA_00001_eeb9320c-b8bf-4601-8e68-4e80a60be27c_Sighting.json
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-28 14:17:38.541
!MESSAGE
!STACK 0
javax.xml.bind.UnmarshalException
- with linked exception:
[org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.]
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(Unknown Source)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(Unknown Source)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(Unknown Source)
at org.wcs.smart.cybertracker.importer.CyberTrackerImporter.readDataModel(CyberTrackerImporter.java:265)
at org.wcs.smart.cybertracker.importer.CyberTrackerImporter.importXmlFileData(CyberTrackerImporter.java:175)
at org.wcs.smart.cybertracker.importer.CyberTrackerImporter.importFileData(CyberTrackerImporter.java:148)
at org.wcs.smart.cybertracker.importer.CyberTrackerImportComposite$10.run(CyberTrackerImportComposite.java:337)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
... 9 more
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-28 14:17:38.579
!MESSAGE Error occurred while importing data from CyberTracker into SMART: Failed to read data from file CTDATA_00001_eeb9320c-b8bf-4601-8e68-4e80a60be27c_Sighting.json. Make sure it s a valid CyberTracker raw xml file.
!STACK 0
java.lang.Exception: Failed to read data from file CTDATA_00001_eeb9320c-b8bf-4601-8e68-4e80a60be27c_Sighting.json. Make sure it s a valid CyberTracker raw xml file.
at org.wcs.smart.cybertracker.importer.CyberTrackerImporter.importXmlFileData(CyberTrackerImporter.java:181)
at org.wcs.smart.cybertracker.importer.CyberTrackerImporter.importFileData(CyberTrackerImporter.java:148)
at org.wcs.smart.cybertracker.importer.CyberTrackerImportComposite$10.run(CyberTrackerImportComposite.java:337)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-28 14:18:06.767
!MESSAGE
!STACK 0
javax.xml.bind.UnmarshalException
- with linked exception:
[org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.]
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(Unknown Source)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(Unknown Source)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(Unknown Source)
at org.wcs.smart.cybertracker.importer.CyberTrackerImporter.readDataModel(CyberTrackerImporter.java:265)
at org.wcs.smart.cybertracker.importer.CyberTrackerImporter.importXmlFileData(CyberTrackerImporter.java:175)
at org.wcs.smart.cybertracker.importer.CyberTrackerImporter.importFileData(CyberTrackerImporter.java:148)
at org.wcs.smart.cybertracker.importer.CyberTrackerImportComposite$10.run(CyberTrackerImportComposite.java:337)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
... 9 more
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-28 14:18:06.768
!MESSAGE Error occurred while importing data from CyberTracker into SMART: Failed to read data from file CTDATA_00001_eeb9320c-b8bf-4601-8e68-4e80a60be27c_Sighting.json. Make sure it s a valid CyberTracker raw xml file.
!STACK 0
java.lang.Exception: Failed to read data from file CTDATA_00001_eeb9320c-b8bf-4601-8e68-4e80a60be27c_Sighting.json. Make sure it s a valid CyberTracker raw xml file.
at org.wcs.smart.cybertracker.importer.CyberTrackerImporter.importXmlFileData(CyberTrackerImporter.java:181)
at org.wcs.smart.cybertracker.importer.CyberTrackerImporter.importFileData(CyberTrackerImporter.java:148)
at org.wcs.smart.cybertracker.importer.CyberTrackerImportComposite$10.run(CyberTrackerImportComposite.java:337)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-28 14:22:22.103
!MESSAGE null: {"geometry":{"coordinates":[-123.36461899077746,48.425508005974905],"type":"Point"},"type":"Feature","properties":{"dateTime":"2018-08-28T21:04:03.000-07:00","altitude":-1.834318052046001,"appName":"Ind. Incident","latitude":48.425508005974905,"ctVersion":"1.0.78.1 build 100","deviceId":"00000000-0157-155f-6fb1-80c73416dd38","sighting":{"SMART_DataType":"incident","SMART_DefaultAttributeValues":"{}","SMART_DefaultPatrolValues":"{}","SMART_NewWaypoint":"true","SMART_ObsCounter":1},"longitude":-123.36461899077746}}
!STACK 0
java.lang.NullPointerException
at org.wcs.smart.cybertracker.incident.IncidentJsonProcessor.processJson(IncidentJsonProcessor.java:107)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.process(JsonFileProcessor.java:200)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.access$0(JsonFileProcessor.java:169)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor$1.run(JsonFileProcessor.java:141)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-28 14:22:22.104
!MESSAGE null: {"geometry":{"coordinates":[-123.36458304583745,48.42551533006643],"type":"Point"},"type":"Feature","properties":{"dateTime":"2018-08-28T21:04:54.000-07:00","altitude":4.688054653815925,"appName":"Ind. Incident","latitude":48.42551533006643,"ctVersion":"1.0.78.1 build 100","deviceId":"00000000-0157-155f-6fb1-80c73416dd38","sighting":{"4:933c4e1a-d368-434b-b811-0b1cf0d014a6":2,"SMART_DataType":"incident","SMART_DefaultAttributeValues":"{}","SMART_DefaultPatrolValues":"{}","SMART_NewWaypoint":"true","4:b14748b1-c5dc-4500-9495-ab0c4c20f716":0,"SMART_ObsCounter":2,"4:de12f67f-b1f5-4bee-9a2b-6c3ad2c3c880":0},"longitude":-123.36458304583745}}
!STACK 0
java.lang.NullPointerException
at org.wcs.smart.cybertracker.incident.IncidentJsonProcessor.processJson(IncidentJsonProcessor.java:107)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.process(JsonFileProcessor.java:200)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.access$0(JsonFileProcessor.java:169)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor$1.run(JsonFileProcessor.java:141)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-28 14:23:21.674
!MESSAGE null: {"geometry":{"coordinates":[-123.36461899077746,48.425508005974905],"type":"Point"},"type":"Feature","properties":{"dateTime":"2018-08-28T21:04:03.000-07:00","altitude":-1.834318052046001,"appName":"Ind. Incident","latitude":48.425508005974905,"ctVersion":"1.0.78.1 build 100","deviceId":"00000000-0157-155f-6fb1-80c73416dd38","sighting":{"SMART_DataType":"incident","SMART_DefaultAttributeValues":"{}","SMART_DefaultPatrolValues":"{}","SMART_NewWaypoint":"true","SMART_ObsCounter":1},"longitude":-123.36461899077746}}
!STACK 0
java.lang.NullPointerException
at org.wcs.smart.cybertracker.incident.IncidentJsonProcessor.processJson(IncidentJsonProcessor.java:107)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.process(JsonFileProcessor.java:200)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.access$0(JsonFileProcessor.java:169)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor$1.run(JsonFileProcessor.java:141)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-28 14:23:21.675
!MESSAGE null: {"geometry":{"coordinates":[-123.36458304583745,48.42551533006643],"type":"Point"},"type":"Feature","properties":{"dateTime":"2018-08-28T21:04:54.000-07:00","altitude":4.688054653815925,"appName":"Ind. Incident","latitude":48.42551533006643,"ctVersion":"1.0.78.1 build 100","deviceId":"00000000-0157-155f-6fb1-80c73416dd38","sighting":{"4:933c4e1a-d368-434b-b811-0b1cf0d014a6":2,"SMART_DataType":"incident","SMART_DefaultAttributeValues":"{}","SMART_DefaultPatrolValues":"{}","SMART_NewWaypoint":"true","4:b14748b1-c5dc-4500-9495-ab0c4c20f716":0,"SMART_ObsCounter":2,"4:de12f67f-b1f5-4bee-9a2b-6c3ad2c3c880":0},"longitude":-123.36458304583745}}
!STACK 0
java.lang.NullPointerException
at org.wcs.smart.cybertracker.incident.IncidentJsonProcessor.processJson(IncidentJsonProcessor.java:107)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.process(JsonFileProcessor.java:200)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.access$0(JsonFileProcessor.java:169)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor$1.run(JsonFileProcessor.java:141)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
CTDATA_00001_eeb9320c-b8bf-4601-8e68-4e80a60be27c_Track.json
CTDATA_00001_eeb9320c-b8bf-4601-8e68-4e80a60be27c_Sighting.json
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-28 14:17:38.541
!MESSAGE
!STACK 0
javax.xml.bind.UnmarshalException
- with linked exception:
[org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.]
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(Unknown Source)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(Unknown Source)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(Unknown Source)
at org.wcs.smart.cybertracker.importer.CyberTrackerImporter.readDataModel(CyberTrackerImporter.java:265)
at org.wcs.smart.cybertracker.importer.CyberTrackerImporter.importXmlFileData(CyberTrackerImporter.java:175)
at org.wcs.smart.cybertracker.importer.CyberTrackerImporter.importFileData(CyberTrackerImporter.java:148)
at org.wcs.smart.cybertracker.importer.CyberTrackerImportComposite$10.run(CyberTrackerImportComposite.java:337)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
... 9 more
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-28 14:17:38.579
!MESSAGE Error occurred while importing data from CyberTracker into SMART: Failed to read data from file CTDATA_00001_eeb9320c-b8bf-4601-8e68-4e80a60be27c_Sighting.json. Make sure it s a valid CyberTracker raw xml file.
!STACK 0
java.lang.Exception: Failed to read data from file CTDATA_00001_eeb9320c-b8bf-4601-8e68-4e80a60be27c_Sighting.json. Make sure it s a valid CyberTracker raw xml file.
at org.wcs.smart.cybertracker.importer.CyberTrackerImporter.importXmlFileData(CyberTrackerImporter.java:181)
at org.wcs.smart.cybertracker.importer.CyberTrackerImporter.importFileData(CyberTrackerImporter.java:148)
at org.wcs.smart.cybertracker.importer.CyberTrackerImportComposite$10.run(CyberTrackerImportComposite.java:337)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-28 14:18:06.767
!MESSAGE
!STACK 0
javax.xml.bind.UnmarshalException
- with linked exception:
[org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.]
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.createUnmarshalException(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.createUnmarshalException(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal0(Unknown Source)
at com.sun.xml.internal.bind.v2.runtime.unmarshaller.UnmarshallerImpl.unmarshal(Unknown Source)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(Unknown Source)
at javax.xml.bind.helpers.AbstractUnmarshallerImpl.unmarshal(Unknown Source)
at org.wcs.smart.cybertracker.importer.CyberTrackerImporter.readDataModel(CyberTrackerImporter.java:265)
at org.wcs.smart.cybertracker.importer.CyberTrackerImporter.importXmlFileData(CyberTrackerImporter.java:175)
at org.wcs.smart.cybertracker.importer.CyberTrackerImporter.importFileData(CyberTrackerImporter.java:148)
at org.wcs.smart.cybertracker.importer.CyberTrackerImportComposite$10.run(CyberTrackerImportComposite.java:337)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
Caused by: org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Content is not allowed in prolog.
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(Unknown Source)
at org.apache.xerces.util.ErrorHandlerWrapper.fatalError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLErrorReporter.reportError(Unknown Source)
at org.apache.xerces.impl.XMLScanner.reportFatalError(Unknown Source)
at org.apache.xerces.impl.XMLDocumentScannerImpl$PrologDispatcher.dispatch(Unknown Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
... 9 more
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-28 14:18:06.768
!MESSAGE Error occurred while importing data from CyberTracker into SMART: Failed to read data from file CTDATA_00001_eeb9320c-b8bf-4601-8e68-4e80a60be27c_Sighting.json. Make sure it s a valid CyberTracker raw xml file.
!STACK 0
java.lang.Exception: Failed to read data from file CTDATA_00001_eeb9320c-b8bf-4601-8e68-4e80a60be27c_Sighting.json. Make sure it s a valid CyberTracker raw xml file.
at org.wcs.smart.cybertracker.importer.CyberTrackerImporter.importXmlFileData(CyberTrackerImporter.java:181)
at org.wcs.smart.cybertracker.importer.CyberTrackerImporter.importFileData(CyberTrackerImporter.java:148)
at org.wcs.smart.cybertracker.importer.CyberTrackerImportComposite$10.run(CyberTrackerImportComposite.java:337)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-28 14:22:22.103
!MESSAGE null: {"geometry":{"coordinates":[-123.36461899077746,48.425508005974905],"type":"Point"},"type":"Feature","properties":{"dateTime":"2018-08-28T21:04:03.000-07:00","altitude":-1.834318052046001,"appName":"Ind. Incident","latitude":48.425508005974905,"ctVersion":"1.0.78.1 build 100","deviceId":"00000000-0157-155f-6fb1-80c73416dd38","sighting":{"SMART_DataType":"incident","SMART_DefaultAttributeValues":"{}","SMART_DefaultPatrolValues":"{}","SMART_NewWaypoint":"true","SMART_ObsCounter":1},"longitude":-123.36461899077746}}
!STACK 0
java.lang.NullPointerException
at org.wcs.smart.cybertracker.incident.IncidentJsonProcessor.processJson(IncidentJsonProcessor.java:107)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.process(JsonFileProcessor.java:200)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.access$0(JsonFileProcessor.java:169)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor$1.run(JsonFileProcessor.java:141)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-28 14:22:22.104
!MESSAGE null: {"geometry":{"coordinates":[-123.36458304583745,48.42551533006643],"type":"Point"},"type":"Feature","properties":{"dateTime":"2018-08-28T21:04:54.000-07:00","altitude":4.688054653815925,"appName":"Ind. Incident","latitude":48.42551533006643,"ctVersion":"1.0.78.1 build 100","deviceId":"00000000-0157-155f-6fb1-80c73416dd38","sighting":{"4:933c4e1a-d368-434b-b811-0b1cf0d014a6":2,"SMART_DataType":"incident","SMART_DefaultAttributeValues":"{}","SMART_DefaultPatrolValues":"{}","SMART_NewWaypoint":"true","4:b14748b1-c5dc-4500-9495-ab0c4c20f716":0,"SMART_ObsCounter":2,"4:de12f67f-b1f5-4bee-9a2b-6c3ad2c3c880":0},"longitude":-123.36458304583745}}
!STACK 0
java.lang.NullPointerException
at org.wcs.smart.cybertracker.incident.IncidentJsonProcessor.processJson(IncidentJsonProcessor.java:107)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.process(JsonFileProcessor.java:200)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.access$0(JsonFileProcessor.java:169)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor$1.run(JsonFileProcessor.java:141)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-28 14:23:21.674
!MESSAGE null: {"geometry":{"coordinates":[-123.36461899077746,48.425508005974905],"type":"Point"},"type":"Feature","properties":{"dateTime":"2018-08-28T21:04:03.000-07:00","altitude":-1.834318052046001,"appName":"Ind. Incident","latitude":48.425508005974905,"ctVersion":"1.0.78.1 build 100","deviceId":"00000000-0157-155f-6fb1-80c73416dd38","sighting":{"SMART_DataType":"incident","SMART_DefaultAttributeValues":"{}","SMART_DefaultPatrolValues":"{}","SMART_NewWaypoint":"true","SMART_ObsCounter":1},"longitude":-123.36461899077746}}
!STACK 0
java.lang.NullPointerException
at org.wcs.smart.cybertracker.incident.IncidentJsonProcessor.processJson(IncidentJsonProcessor.java:107)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.process(JsonFileProcessor.java:200)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.access$0(JsonFileProcessor.java:169)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor$1.run(JsonFileProcessor.java:141)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-28 14:23:21.675
!MESSAGE null: {"geometry":{"coordinates":[-123.36458304583745,48.42551533006643],"type":"Point"},"type":"Feature","properties":{"dateTime":"2018-08-28T21:04:54.000-07:00","altitude":4.688054653815925,"appName":"Ind. Incident","latitude":48.42551533006643,"ctVersion":"1.0.78.1 build 100","deviceId":"00000000-0157-155f-6fb1-80c73416dd38","sighting":{"4:933c4e1a-d368-434b-b811-0b1cf0d014a6":2,"SMART_DataType":"incident","SMART_DefaultAttributeValues":"{}","SMART_DefaultPatrolValues":"{}","SMART_NewWaypoint":"true","4:b14748b1-c5dc-4500-9495-ab0c4c20f716":0,"SMART_ObsCounter":2,"4:de12f67f-b1f5-4bee-9a2b-6c3ad2c3c880":0},"longitude":-123.36458304583745}}
!STACK 0
java.lang.NullPointerException
at org.wcs.smart.cybertracker.incident.IncidentJsonProcessor.processJson(IncidentJsonProcessor.java:107)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.process(JsonFileProcessor.java:200)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.access$0(JsonFileProcessor.java:169)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor$1.run(JsonFileProcessor.java:141)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
I've tested an updated version (102) as of aug31, we're making progress as the ind.incident is processed correctly enough to create the observation in SMART now. I am seeing an error related to the end patrol observation now that it gets that far. In this file I have a start patrol, 1 normal , 1 ind.inc. and a end patrol observation. I get some errors still, some on the stop patrol error being counter=3, which seems correct to me in their file, regular counter goes: 1,2,3. Incident counter=1:
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-31 14:19:27.661
!MESSAGE Invalid value for observation counter: 3: {"geometry":{"coordinates":[-123.36462978074391,48.42611358824729],"type":"Point"},"type":"Feature","properties":{"dateTime":"2018-08-31T19:46:35.000-07:00","altitude":52.17793055437505,"appName":"Testing A11","latitude":48.42611358824729,"ctVersion":"1.0.79.1 build 102","deviceId":"00000000-0157-155f-6fb1-80c73416dd38","sighting":{"e:769b6cf7ebdd4c578e951aaa215db04c":"true","SMART_DefaultAttributeValues":"{}","SMART_Armed":"true","SMART_Leader":"e:769b6cf7ebdd4c578e951aaa215db04c","SMART_PatrolID":"d7eb42dc-3cbe-e38c-9fac-6a56e8cb4498","SMART_PatrolStartTime":"12:39:6","SMART_DataType":"patrol","SMART_Station":"ps:cb9e8cdaefdb4babb397d7811b0f79ce","SMART_PatrolStartDate":"2018\/8\/31","SMART_ObservationType":"StopPatrol","SMART_PatrolTransport":"tt:92b089a673a3474984cef5d41caca2af","SMART_DefaultPatrolValues":"{}","SMART_Mandate":"pm:6fb86072c16042c1bb88e6edf539b952","SMART_Team":"ps:77a3f892e8364584b622311f8149d6bf","e:f0535ecd7ca64d52b7707772006f3c2f":"true","SMART_NewWaypoint":"true","SMART_ObsCounter":"3","e:cfc03b57a608436cb4cf755b34c81687":"true"},"longitude":-123.36462978074391}}
!STACK 0
java.lang.Exception: Invalid value for observation counter: 3
at org.wcs.smart.cybertracker.importer.json.JsonCtParser.parseObservationCounter(JsonCtParser.java:322)
at org.wcs.smart.cybertracker.patrol.json.PatrolJsonProcessor.processJson(PatrolJsonProcessor.java:140)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.process(JsonFileProcessor.java:200)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.access$0(JsonFileProcessor.java:169)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor$1.run(JsonFileProcessor.java:141)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-31 14:19:31.933
!MESSAGE Invalid UUID string:
!STACK 0
java.lang.IllegalArgumentException: Invalid UUID string:
at java.util.UUID.fromString(Unknown Source)
at org.wcs.smart.util.UuidUtils.stringToUuid(UuidUtils.java:63)
at org.wcs.smart.cybertracker.JsonUtils.findAttributeTreeNode(JsonUtils.java:185)
at org.wcs.smart.cybertracker.JsonUtils.setAttributeValue(JsonUtils.java:141)
at org.wcs.smart.cybertracker.importer.json.JsonCtParser.createWaypointObservationAttribute(JsonCtParser.java:645)
at org.wcs.smart.cybertracker.importer.json.JsonCtParser.createWaypoint(JsonCtParser.java:496)
at org.wcs.smart.cybertracker.incident.IncidentJsonProcessor.processJson(IncidentJsonProcessor.java:135)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.process(JsonFileProcessor.java:200)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.access$0(JsonFileProcessor.java:169)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor$1.run(JsonFileProcessor.java:141)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-31 14:19:31.934
!MESSAGE Invalid UUID string:
!STACK 0
java.lang.IllegalArgumentException: Invalid UUID string:
at java.util.UUID.fromString(Unknown Source)
at org.wcs.smart.util.UuidUtils.stringToUuid(UuidUtils.java:63)
at org.wcs.smart.cybertracker.JsonUtils.findAttributeTreeNode(JsonUtils.java:185)
at org.wcs.smart.cybertracker.JsonUtils.setAttributeValue(JsonUtils.java:141)
at org.wcs.smart.cybertracker.importer.json.JsonCtParser.createWaypointObservationAttribute(JsonCtParser.java:645)
at org.wcs.smart.cybertracker.importer.json.JsonCtParser.createWaypoint(JsonCtParser.java:496)
at org.wcs.smart.cybertracker.incident.IncidentJsonProcessor.processJson(IncidentJsonProcessor.java:135)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.process(JsonFileProcessor.java:200)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.access$0(JsonFileProcessor.java:169)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor$1.run(JsonFileProcessor.java:141)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
Some of the invalid UUID errors might need changes in CT still? Any direction we can give them will be helpful.
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-31 14:19:27.661
!MESSAGE Invalid value for observation counter: 3: {"geometry":{"coordinates":[-123.36462978074391,48.42611358824729],"type":"Point"},"type":"Feature","properties":{"dateTime":"2018-08-31T19:46:35.000-07:00","altitude":52.17793055437505,"appName":"Testing A11","latitude":48.42611358824729,"ctVersion":"1.0.79.1 build 102","deviceId":"00000000-0157-155f-6fb1-80c73416dd38","sighting":{"e:769b6cf7ebdd4c578e951aaa215db04c":"true","SMART_DefaultAttributeValues":"{}","SMART_Armed":"true","SMART_Leader":"e:769b6cf7ebdd4c578e951aaa215db04c","SMART_PatrolID":"d7eb42dc-3cbe-e38c-9fac-6a56e8cb4498","SMART_PatrolStartTime":"12:39:6","SMART_DataType":"patrol","SMART_Station":"ps:cb9e8cdaefdb4babb397d7811b0f79ce","SMART_PatrolStartDate":"2018\/8\/31","SMART_ObservationType":"StopPatrol","SMART_PatrolTransport":"tt:92b089a673a3474984cef5d41caca2af","SMART_DefaultPatrolValues":"{}","SMART_Mandate":"pm:6fb86072c16042c1bb88e6edf539b952","SMART_Team":"ps:77a3f892e8364584b622311f8149d6bf","e:f0535ecd7ca64d52b7707772006f3c2f":"true","SMART_NewWaypoint":"true","SMART_ObsCounter":"3","e:cfc03b57a608436cb4cf755b34c81687":"true"},"longitude":-123.36462978074391}}
!STACK 0
java.lang.Exception: Invalid value for observation counter: 3
at org.wcs.smart.cybertracker.importer.json.JsonCtParser.parseObservationCounter(JsonCtParser.java:322)
at org.wcs.smart.cybertracker.patrol.json.PatrolJsonProcessor.processJson(PatrolJsonProcessor.java:140)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.process(JsonFileProcessor.java:200)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.access$0(JsonFileProcessor.java:169)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor$1.run(JsonFileProcessor.java:141)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-31 14:19:31.933
!MESSAGE Invalid UUID string:
!STACK 0
java.lang.IllegalArgumentException: Invalid UUID string:
at java.util.UUID.fromString(Unknown Source)
at org.wcs.smart.util.UuidUtils.stringToUuid(UuidUtils.java:63)
at org.wcs.smart.cybertracker.JsonUtils.findAttributeTreeNode(JsonUtils.java:185)
at org.wcs.smart.cybertracker.JsonUtils.setAttributeValue(JsonUtils.java:141)
at org.wcs.smart.cybertracker.importer.json.JsonCtParser.createWaypointObservationAttribute(JsonCtParser.java:645)
at org.wcs.smart.cybertracker.importer.json.JsonCtParser.createWaypoint(JsonCtParser.java:496)
at org.wcs.smart.cybertracker.incident.IncidentJsonProcessor.processJson(IncidentJsonProcessor.java:135)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.process(JsonFileProcessor.java:200)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.access$0(JsonFileProcessor.java:169)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor$1.run(JsonFileProcessor.java:141)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
!ENTRY org.wcs.smart.cybertracker 4 0 2018-08-31 14:19:31.934
!MESSAGE Invalid UUID string:
!STACK 0
java.lang.IllegalArgumentException: Invalid UUID string:
at java.util.UUID.fromString(Unknown Source)
at org.wcs.smart.util.UuidUtils.stringToUuid(UuidUtils.java:63)
at org.wcs.smart.cybertracker.JsonUtils.findAttributeTreeNode(JsonUtils.java:185)
at org.wcs.smart.cybertracker.JsonUtils.setAttributeValue(JsonUtils.java:141)
at org.wcs.smart.cybertracker.importer.json.JsonCtParser.createWaypointObservationAttribute(JsonCtParser.java:645)
at org.wcs.smart.cybertracker.importer.json.JsonCtParser.createWaypoint(JsonCtParser.java:496)
at org.wcs.smart.cybertracker.incident.IncidentJsonProcessor.processJson(IncidentJsonProcessor.java:135)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.process(JsonFileProcessor.java:200)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor.access$0(JsonFileProcessor.java:169)
at org.wcs.smart.cybertracker.importer.json.JsonFileProcessor$1.run(JsonFileProcessor.java:141)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:119)
Some of the invalid UUID errors might need changes in CT still? Any direction we can give them will be helpful.
forgot to attach the file...
CTDATA_00001_2018-08-31T135610_Sighting.json
CTDATA_00001_2018-08-31T135610_Sighting.json
The uuid problems are likely from this JSON:
I assume perhaps a tree option was not chosen. If that's the case we probably shouldn't include these in the JSON
@jeffloun2 - you can test to ensure these are the problems by editing your json file and trying to load it again. If you update the OBS Counter and remove those two rows you should be able to load it into SMART.
"a:3:a6e5c90fc4bb4e55890ae1656d7f4f67": "t:",
"a:3:b901636ea36a479c9b4e6ec73cd61e04": "t:",
I assume perhaps a tree option was not chosen. If that's the case we probably shouldn't include these in the JSON
@jeffloun2 - you can test to ensure these are the problems by editing your json file and trying to load it again. If you update the OBS Counter and remove those two rows you should be able to load it into SMART.
Mostly this is working, other than some issues that affect all CT stuff like numeric values not working etc. I will keep following up with Justin on those, but I think we're good from our side of processing ind. incidents.