BioLegato Change Log
Version 1.0.4
1. overwrite implemented for Table canvas when direction=out
See http://www.bioinformatics.org/wiki/PCD_SUMMARY#Tempfile_.28a_temporary_file_containing_all_of_the_data_selected_in_BioLegato.E2.80.99s_main_canvas.29
Use of content=canvas with overwrite generates an error that is very
difficult to track down.
See Bugzilla
#1218
After running the shell command:
Exception in thread "AWT-EventQueue-0"
java.lang.ArrayIndexOutOfBoundsException: 1 >= 0
at
java.util.Vector.elementAt(Vector.java:477)
at
javax.swing.table.DefaultTableModel.getValueAt(DefaultTableModel.java:648)
at
javax.swing.JTable.getValueAt(JTable.java:2717)
at
javax.swing.JTable.prepareRenderer(JTable.java:5706)
at
javax.swing.plaf.basic.BasicTableUI.paintCell(BasicTableUI.java:2114)
at
javax.swing.plaf.basic.BasicTableUI.paintCells(BasicTableUI.java:2016)
at
javax.swing.plaf.basic.BasicTableUI.paint(BasicTableUI.java:1812)
at
javax.swing.plaf.ComponentUI.update(ComponentUI.java:161)
at
javax.swing.JComponent.paintComponent(JComponent.java:780)
at
javax.swing.JComponent.paint(JComponent.java:1056)
at
javax.swing.JComponent.paintToOffscreen(JComponent.java:5210)
at
javax.swing.BufferStrategyPaintManager.paint(BufferStrategyPaintManager.java:290)
at
javax.swing.RepaintManager.paint(RepaintManager.java:1272)
at
javax.swing.JComponent._paintImmediately(JComponent.java:5158)
at
javax.swing.JComponent.paintImmediately(JComponent.java:4969)
at
javax.swing.RepaintManager$4.run(RepaintManager.java:831)
at
javax.swing.RepaintManager$4.run(RepaintManager.java:814)
at
java.security.AccessController.doPrivileged(Native Method)
at
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at
javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:814)
at
javax.swing.RepaintManager.paintDirtyRegions(RepaintManager.java:789)
at
javax.swing.RepaintManager.prePaintDirtyRegions(RepaintManager.java:738)
at
javax.swing.RepaintManager.access$1200(RepaintManager.java:64)
at
javax.swing.RepaintManager$ProcessingRunnable.run(RepaintManager.java:1732)
at
java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
at
java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at
java.awt.EventQueue.access$500(EventQueue.java:97)
at
java.awt.EventQueue$3.run(EventQueue.java:709)
at
java.awt.EventQueue$3.run(EventQueue.java:703)
at
java.security.AccessController.doPrivileged(Native Method)
at
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
at
java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at
java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at
java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
The error appears to occur in TableModel.java/getRowData. The
varialbe tableModel is of the type DefaultTableModel, which has the
getValueAt function. There are only two calls to this function, both
in getRowData (lines 439 & 452). This code looks good, so when
overwrite/content were introduced to out files, I must have messed
up something upstream.
If for example, columns was null when it shouldn't be, or was
non-null when it should be, then the wrong block of code would be
called, throwing off the column count.
So who calls getRowData? There are only 2 calls, both in getData
(lines 353 & 372). Each of these is in a separate block,
depending on whether or not forceall is true. I smell a rat!
2. Value fields for Text and Number variables allow environment
variable substitution.
See http://www.bioinformatics.org/wiki/PCD_SUMMARY#Environment_Variable_Substitution
for details.
Version 1.0.3
1.Modified CommandThread.java to allow execution of jobs in the
background. See comments.
2.Refactored some of the classes so that the word 'translate' was
not in the name. In the context of sequences, 'translate' could be
misleading. "Apply Rename on Comments" was used.
File
|
old name
|
new name
|
GenBankFile2008.java
|
translateTo
|
convertTo
|
|
translateSequence
|
convertSequence
|
DataFormat.java
|
translateTo
|
convertTo
|
|
translateFrom
|
convertFrom
|
3. Modified GenBankFile2008.java line 172 as follows:
} else {
// We have to remove the last newline from the end of the
annotation.
// Apparently, the append function adds a newline, so if we
don't do
// this, an extra blank line appears between the end of the
annotation
// and the ORIGIN line.
result.append(seq.getOriginal().subSequence(0,
seq.getOriginal().length()-1));
}