Experimental -> Tools -> Add Banner: Exception
See original GitHub issuePrerequisites
- Put an X between the brackets on this line if you have done all of the following:
- Running the latest version of Constellation
- Attached the Support Package via
Help
>Support Package
- Checked the FAQs: https://github.com/constellation-app/constellation/wiki/FAQ
- Checked that your issue isn’t already filed: https://github.com/constellation-app/constellation/issues
- Checked that there is not already a module that provides the described functionality: https://github.com/constellation-app/constellation/wiki/Catalogue-of-Repositories
Description
Adding a banner causes the below exception
java.lang.Exception: No I/O provider found for object type au.gov.asd.tac.constellation.graph.schema.visual.attribute.objects.Banner, attribute ImmutableAttribute[id=57;type=banner;label=banner;description=banner;elementType=Metadata;defaultValue=null]
at au.gov.asd.tac.constellation.graph.file.io.GraphJsonWriter.writeElements(GraphJsonWriter.java:386)
[catch] at au.gov.asd.tac.constellation.graph.file.io.GraphJsonWriter.writeGraphToStream(GraphJsonWriter.java:261)
at au.gov.asd.tac.constellation.graph.file.io.GraphJsonWriter.writeGraphToZip(GraphJsonWriter.java:168)
at au.gov.asd.tac.constellation.graph.file.io.GraphJsonWriter.writeGraphToZip(GraphJsonWriter.java:144)
at au.gov.asd.tac.constellation.graph.file.io.GraphJsonWriter.writeGraphToZip(GraphJsonWriter.java:135)
at au.gov.asd.tac.constellation.graph.interaction.plugins.io.AutosaveGraphPlugin.execute(AutosaveGraphPlugin.java:94)
at au.gov.asd.tac.constellation.plugins.templates.SimplePlugin.run(SimplePlugin.java:68)
at au.gov.asd.tac.constellation.graph.node.plugins.DefaultPluginEnvironment.executePluginNow(DefaultPluginEnvironment.java:219)
at au.gov.asd.tac.constellation.plugins.PluginExecution.executeNow(PluginExecution.java:310)
at au.gov.asd.tac.constellation.graph.interaction.plugins.io.Autosaver$1.run(Autosaver.java:113)
Steps to Reproduce
- New graph -> draw mode, add 3 nodes, select 1
- Add banner
Expected behaviour: A banner to be added
Actual behaviour: Exception, and that is all
Reproduces how often: 30%
Additional Information
Found using .exe v2.0 rc2
Issue Analytics
- State:
- Created 3 years ago
- Comments:11 (6 by maintainers)
Top Results From Across the Web
Banner Basics and Navigation - Staff
Understanding the components and terminology of Banner forms will make navigating through Banner easier. Banner General Menu Form: Note: Most Menu Items and ......
Read more >How to Open Banner
When trying to open Banner, if you are seeing a blank page, or the browser ... Click on the tools button in IE...
Read more >Banner Hanging Guidelines for J
Banners must include grommets at all four corners in order to be attached to the building. The exception is if the banners are...
Read more >Creating and Selecting a Banner Blackboard Questions ...
Open Microsoft Powerpoint and click the Page Setup button (under Design Tab). Select Banner from the drop down menu under Slides sized for....
Read more >Banner General Quick Reference - SIUE
Your password to Banner is maintained as you manage your e-ID password. ... Insert Record: Add record to Information Block ... IE Tools...
Read more >Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start FreeTop Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
Top GitHub Comments
This issue is really odd. I’ve done a bit of analysis and I’ve noticed that the BannerIOProvider is being registered properly because you can see it in the list of all of the providers within the getProviders() method in AbstractGraphIOProvider.
But whats strange is that when you call the getProviders() method from another class, for example in the GraphJsonWriter constructor the BannerIOProvider is not returned. I’ll do some more analysis though and see what else I can find.
I don’t think you necessarily need to implement
convertFromString
. Broadly, for anIOProvider
to work, you need to define a way to serialize an object (in this case aBanner
) to and from JSON in theIOProvider
class. I suspectconvertToString
is offloading the work to theBanner
class in this case, but it could just as easily be done in theIOProvider
class.