rings a bell. dimly recall an issue, where the "enhanced" FeatureSchema was not 
properly editable. will have a look - after the release, nobody complained 
until now.

what should work as a workaround for now is - load GeoJSON, save as JML, reopen 
and edit away.

..ede


On 17.01.2020 08:24, Michaël Michaud wrote:
> Hi Ede,
>
> Seems related to the special way OJ handles GeoJSON features and 
> FeatureSchema.
>
> I explored the feature attributes and schema of the GeoJSON feature with 
> beanshell,
> but could not find what goes wrong :
> - the feature seems to have a normal schema with two attributes (GEOMETRY and 
> attribute1)
> - but GeoJSONFeatureCollectionWrapper$1.getAttribute(1) throw the exception
>
> It looks like if feature has a normal schema modified by the FeatureSchema 
> editing tool
> and the original schema from GeoJSONFeatureCollectionWrapper which miss the 
> new attribute
>
> Michaël
>
> Le 16/01/2020 à 02:00, Rahkonen Jukka (MML) a écrit :
>>
>> Now with the images I promised to attach.
>>
>> -Jukka-
>>
>> *Lähettäjä:*Rahkonen Jukka (MML) <jukka.rahko...@maanmittauslaitos.fi>
>> *Lähetetty:* torstai 16. tammikuuta 2020 2.02
>> *Vastaanottaja:* OpenJump develop and use 
>> (jump-pilot-devel@lists.sourceforge.net) 
>> <jump-pilot-devel@lists.sourceforge.net>
>> *Aihe:* [JPP-Devel] Why attribute panel goes to ghost mode?
>>
>> Hi,
>>
>> I have been wondering what happens when OpenJUMP encounters some error and 
>> after that it responds slowly and some panels show only partially. I try to 
>> explain how to make that happen.
>>
>>  1. Start OpenJUMP
>>  2. Add a new layer
>>  3. Add one feature as WKT: POINT (0 0)
>>  4. Save the layer as GeoJSON “point.json”
>>  5. Open that GeoJSON file
>>  6. Open attribute table and see that everything seems normal
>>  7. Make layer editable
>>  8. Edit schema and add a new attribute as “attribute1; String”
>>  9. Apply changes
>> 10. Open the attribute table
>>
>> The table opens for me as in the attached image #1. If I move the mouse 
>> around where I suppose that the table is I can get some more details visible 
>> (image #2).
>>
>> I believe there are two issues involved:
>>
>>  1. for some reason the schema of a GeoJSON layer is not properly editable
>>  2. something happens due to 1) that sets the the attribute table into
>>     a spooky state
>>
>> I have experienced that the ghost window behavior can appear also after some 
>> after unsuccessful operations but I can’t remember any other examples. 
>> Anyway it means that fixing the issue with GeoJSON will not fix the ghost 
>> table issue generally.
>>
>> Here is the log from the unsuccessful schema edit.
>>
>> [INFO] 01:56:15.476 Done. Current committed 
>> memory:plugin.AbstractPlugIn.executing = Executing51 MB
>>
>> Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: 
>> Index: 1, Size: 1
>>
>>         at java.util.ArrayList.rangeCheck(Unknown Source)
>>
>>         at java.util.ArrayList.get(Unknown Source)
>>
>>         at 
>> com.vividsolutions.jump.feature.FeatureSchema.getAttributeType(FeatureSchema.java:144)
>>
>>         at 
>> com.vividsolutions.jump.io.geojson.GeoJSONFeatureCollectionWrapper$1.getAttribute(GeoJSONFeatureCollectionWrapper.java:85)
>>
>>         at 
>> com.vividsolutions.jump.workbench.ui.LayerTableModel$4.getValue(LayerTableModel.java:166)
>>
>>         at 
>> com.vividsolutions.jump.workbench.ui.LayerTableModel$MyColumn.getValueAt(LayerTableModel.java:70)
>>
>>         at 
>> com.vividsolutions.jump.workbench.ui.ColumnBasedTableModel.getValueAt(ColumnBasedTableModel.java:141)
>>
>>         at javax.swing.JTable.getValueAt(Unknown Source)
>>
>>         at javax.swing.JTable.prepareRenderer(Unknown Source)
>>
>>         at javax.swing.plaf.basic.BasicTableUI.paintCell(Unknown Source)
>>
>>         at javax.swing.plaf.basic.BasicTableUI.paintCells(Unknown Source)
>>
>>         at javax.swing.plaf.basic.BasicTableUI.paint(Unknown Source)
>>
>>         at javax.swing.plaf.ComponentUI.update(Unknown Source)
>>
>>         at javax.swing.JComponent.paintComponent(Unknown Source)
>>
>>         at javax.swing.JComponent.paint(Unknown Source)
>>
>>         at javax.swing.JComponent.paintChildren(Unknown Source)
>>
>>         at javax.swing.JComponent.paint(Unknown Source)
>>
>>         at javax.swing.JViewport.paint(Unknown Source)
>>
>>         at javax.swing.JComponent.paintChildren(Unknown Source)
>>
>>         at javax.swing.JComponent.paint(Unknown Source)
>>
>>         at javax.swing.JComponent.paintChildren(Unknown Source)
>>
>>         at javax.swing.JComponent.paint(Unknown Source)
>>
>>         at javax.swing.JComponent.paintChildren(Unknown Source)
>>
>>         at javax.swing.JComponent.paint(Unknown Source)
>>
>>         at javax.swing.JComponent.paintChildren(Unknown Source)
>>
>>         at javax.swing.JComponent.paint(Unknown Source)
>>
>>         at javax.swing.JComponent.paintChildren(Unknown Source)
>>
>>         at javax.swing.JComponent.paint(Unknown Source)
>>
>>         at javax.swing.JComponent.paintChildren(Unknown Source)
>>
>>         at javax.swing.JComponent.paint(Unknown Source)
>>
>>         at javax.swing.JLayeredPane.paint(Unknown Source)
>>
>>         at javax.swing.JComponent.paintChildren(Unknown Source)
>>
>>         at javax.swing.JComponent.paint(Unknown Source)
>>
>>         at javax.swing.JComponent.paintChildren(Unknown Source)
>>
>>         at javax.swing.JComponent.paint(Unknown Source)
>>
>>         at javax.swing.JComponent.paintChildren(Unknown Source)
>>
>>         at javax.swing.JComponent.paint(Unknown Source)
>>
>>         at javax.swing.JLayeredPane.paint(Unknown Source)
>>
>>         at javax.swing.JComponent.paintToOffscreen(Unknown Source)
>>
>>         at 
>> javax.swing.RepaintManager$PaintManager.paintDoubleBuffered(Unknown Source)
>>
>>         at javax.swing.RepaintManager$PaintManager.paint(Unknown Source)
>>
>>         at javax.swing.RepaintManager.paint(Unknown Source)
>>
>>         at javax.swing.JComponent._paintImmediately(Unknown Source)
>>
>>         at javax.swing.JComponent.paintImmediately(Unknown Source)
>>
>>         at javax.swing.RepaintManager$4.run(Unknown Source)
>>
>>         at javax.swing.RepaintManager$4.run(Unknown Source)
>>
>>         at java.security.AccessController.doPrivileged(Native Method)
>>
>>         at 
>> java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
>>  Source)
>>
>>         at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
>>
>>         at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
>>
>>         at javax.swing.RepaintManager.prePaintDirtyRegions(Unknown Source)
>>
>>         at javax.swing.RepaintManager.access$1200(Unknown Source)
>>
>>         at javax.swing.RepaintManager$ProcessingRunnable.run(Unknown Source)
>>
>>         at java.awt.event.InvocationEvent.dispatch(Unknown Source)
>>
>>         at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
>>
>>         at java.awt.EventQueue.access$500(Unknown Source)
>>
>>         at java.awt.EventQueue$3.run(Unknown Source)
>>
>>         at java.awt.EventQueue$3.run(Unknown Source)
>>
>>         at java.security.AccessController.doPrivileged(Native Method)
>>
>>         at 
>> java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
>>  Source)
>>
>>         at java.awt.EventQueue.dispatchEvent(Unknown Source)
>>
>>         at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown 
>> Source)
>>
>>         at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
>>
>>         at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown 
>> Source)
>>
>>         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
>>
>>         at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
>>
>>         at java.awt.EventDispatchThread.run(Unknown Source)
>>
>> -Jukka-
>>
>>
>>
>> _______________________________________________
>> Jump-pilot-devel mailing list
>> Jump-pilot-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>
>
>
> _______________________________________________
> Jump-pilot-devel mailing list
> Jump-pilot-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>



_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to