Fetched Deepthi's branch for testing on my Mac. The file prodigal_Lambda_phage_sequences.gff is now loading into IGB without error.
However, when I attempt to load two GFF files at once, IGB throws the following error:
09:51:57.564 ERROR c.a.genometry.thread.CThreadWorker - class com.affymetrix.genometry.symloader.GFF3 cannot be cast to class com.affymetrix.genometry.quickload.QuickLoadSymLoader (com.affymetrix.genometry.symloader.GFF3 and com.affymetrix.genometry.quickload.QuickLoadSymLoader are in unnamed module of loader org.apache.felix.framework.BundleWiringImpl$BundleClassLoader @31889288)
java.lang.ClassCastException: class com.affymetrix.genometry.symloader.GFF3 cannot be cast to class com.affymetrix.genometry.quickload.QuickLoadSymLoader (com.affymetrix.genometry.symloader.GFF3 and com.affymetrix.genometry.quickload.QuickLoadSymLoader are in unnamed module of loader org.apache.felix.framework.BundleWiringImpl$BundleClassLoader @31889288)
at com.affymetrix.igb.view.load.GeneralLoadUtils$3.runInBackground(GeneralLoadUtils.java:1030)
at com.affymetrix.igb.view.load.GeneralLoadUtils$3.runInBackground(GeneralLoadUtils.java:1009)
at com.affymetrix.genometry.thread.CThreadWorker.doInBackground(CThreadWorker.java:73)
at java.desktop/javax.swing.SwingWorker$1.call(SwingWorker.java:305)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.desktop/javax.swing.SwingWorker.run(SwingWorker.java:342)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1583)
Loading these files into IGB individually does not throw this error. This is probably an edge case, but figured I'd bring it to your attention regardless.
Also, I'm getting an error in the terminal upon closing IGB after loading in GFF file(s):
ERROR: Bundle igb [39] EventDispatcher: Error during dispatch. (java.lang.IllegalStateException: Invalid BundleContext.)
java.lang.IllegalStateException: Invalid BundleContext.
at org.apache.felix.framework.BundleContextImpl.checkValidity(BundleContextImpl.java:491)
at org.apache.felix.framework.BundleContextImpl.getService(BundleContextImpl.java:431)
at com.affymetrix.common.ExtensionPointHandler.lambda$getOrCreateExtensionPoint$0(ExtensionPointHandler.java:46)
at org.apache.felix.framework.EventDispatcher.invokeServiceListenerCallback(EventDispatcher.java:990)
at org.apache.felix.framework.EventDispatcher.fireEventImmediately(EventDispatcher.java:838)
at org.apache.felix.framework.EventDispatcher.fireServiceEvent(EventDispatcher.java:545)
at org.apache.felix.framework.Felix.fireServiceEvent(Felix.java:4863)
at org.apache.felix.framework.Felix.access$000(Felix.java:111)
at org.apache.felix.framework.Felix$1.serviceChanged(Felix.java:440)
at org.apache.felix.framework.ServiceRegistry.unregisterService(ServiceRegistry.java:170)
at org.apache.felix.framework.ServiceRegistrationImpl.unregister(ServiceRegistrationImpl.java:146)
at org.apache.felix.framework.ServiceRegistry.unregisterServices(ServiceRegistry.java:241)
at org.apache.felix.framework.Felix.stopBundle(Felix.java:2847)
at org.apache.felix.framework.Felix.setActiveStartLevel(Felix.java:1584)
at org.apache.felix.framework.FrameworkStartLevelImpl.run(FrameworkStartLevelImpl.java:297)
at java.base/java.lang.Thread.run(Thread.java:1583)
Again, I'm not sure if this needs to be addressed since I'm not able to see this error while IGB's running. Interestingly, this isn't occurring with the test file attached to this ticket, but rather only with GFF files that have multiple FASTA sequences.
General question after testing:
Should Load Sequence work in IGB if a GFF file contains a ##FASTA section? I'm getting a pop-up that says "A genome sequence has not been selected. Loading sequence data is not possible." when I try to Load Sequence regardless of whether a GFF file contains a ##FASTA section or not. Upon closer inspection, though, files containing a single FASTA sequence do have their sequence loaded despite the pop-up! GFF files with multiple FASTA sequences do not.
To reproduce my findings here, you can access GFF files with multiple FASTA sequences at the following Google Drive link: https://drive.google.com/drive/folders/1VV2xijrVRsBFacugGT1xZUwdns9t5CaG?usp=drive_link
While loading the GFF files that contain #FASTA code, I observed a NullPointerException. Upon checking the code, I identified the cause of the exception. The issue occurs because, while reading each line in the GFF file, the code reads the end of the line as a empty string but in code it is checking for null, which is causing the NullPointerException.
The impact of this exception is that it prevents loading any tracks for files that contain #FASTA sections.