In WordCorr 2, sometimes one gets the error message:
"The Name field is required. Please enter a value."
However, there is no place to enter a value.
Dismissing the dialog box does no good, because as soon
as you try to do anything whatsoever, it comes up
again. You can't even exit WordCorr normally -- you
have to kill it. I've had reports of this from three
different individuals. In at least one case, upon
restarting WordCorr, the error message loop happens
again -- rendering WordCorr completely useless.
Logged In: YES
user_id=1050693
Relevant stack trace:
java.lang.reflect.InvocationTargetException
at
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:585)
at
org.wordcorr.gui.input.InputTable.setValues(InputTable.java:81)
at
org.wordcorr.gui.PropertyPane.<init>(PropertyPane.java:35)
at
org.wordcorr.gui.PropertyPane.<init>(PropertyPane.java:17)
at org.wordcorr.gui.SavePane.<init>(SavePane.java:38)
at org.wordcorr.gui.SavePane.<init>(SavePane.java:26)
at
org.wordcorr.gui.AddEditDeletePanel.createRightComponent(AddEditDeletePanel.java:174)
at
org.wordcorr.gui.AddEditDeletePanel$1.valueChanged(AddEditDeletePanel.java:99)
at
javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:187)
at
javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:167)
at
javax.swing.DefaultListSelectionModel.fireValueChanged(DefaultListSelectionModel.java:214)
at
javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:408)
at
javax.swing.DefaultListSelectionModel.changeSelection(DefaultListSelectionModel.java:417)
at
javax.swing.DefaultListSelectionModel.setSelectionInterval(DefaultListSelectionModel.java:441)
at javax.swing.JList.setSelectedIndex(JList.java:1732)
at javax.swing.JList.setSelectedValue(JList.java:1834)
at
org.wordcorr.gui.ViewsPane.setSelect(ViewsPane.java:161)
at
org.wordcorr.gui.ViewsPane.refreshExt(ViewsPane.java:135)
at
org.wordcorr.gui.AddEditDeletePanel.refresh(AddEditDeletePanel.java:142)
at
org.wordcorr.gui.CollectionNode$RightPane$1.stateChanged(CollectionNode.java:190)
at
javax.swing.JTabbedPane.fireStateChanged(JTabbedPane.java:290)
at
javax.swing.JTabbedPane$ModelListener.stateChanged(JTabbedPane.java:222)
at
javax.swing.DefaultSingleSelectionModel.fireStateChanged(DefaultSingleSelectionModel.java:116)
at
javax.swing.DefaultSingleSelectionModel.setSelectedIndex(DefaultSingleSelectionModel.java:50)
at
javax.swing.JTabbedPane.setSelectedIndexImpl(JTabbedPane.java:478)
at
javax.swing.JTabbedPane.setSelectedIndex(JTabbedPane.java:464)
at
org.wordcorr.gui.DatabasePane.refresh(DatabasePane.java:58)
at
org.wordcorr.gui.MainFrame$MainPanel.refresh(MainFrame.java:318)
at
org.wordcorr.gui.MainFrame.refresh(MainFrame.java:252)
at org.wordcorr.gui.MainFrame.init(MainFrame.java:95)
at org.wordcorr.gui.Main.main(Main.java:41)
Caused by: java.lang.StringIndexOutOfBoundsException: String
index out of range: 4
at java.lang.String.substring(String.java:1765)
at
org.wordcorr.db.View.getGraphemeClusters(View.java:281)
Logged In: YES
user_id=1050693
There seems to be a problem with the alignment data getting
messed up somehow. Here are the relevant entries from the
database.script file.
From one user:
INSERT INTO DATUM VALUES(65521,35,3959,'da\u02d0u1','','')
INSERT INTO ALIGNMENT
VALUES(9750,44,2522,65521,'x{xxx}xx{xx}x',NULL,NULL,NULL,NULL,NULL,NULL)
From a different user:
INSERT INTO DATUM VALUES(23369,2,1396,'\u025cj',NULL,NULL)
INSERT INTO ALIGNMENT
VALUES(319,5,76,23369,'{xx}{xx}/',NULL,NULL,NULL,NULL,NULL,NULL)
Thus the alignment expects more characters than are actually
in the datum. This causes the
StringIndexOutOfBoundsException that is the root cause of
the error loop.
I have no idea how the alignment data is getting messed up
like this.
Logged In: YES
user_id=1050693
Matt reports:
1) after altering data by deleting some portion of it, if
you then create a cluster that incorporates elements that
were previously separated by the deleted portion, then the
program has not updated itself that those elements have been
deleted, so thinks that the cluster is much longer (because
includes the deleted elements) than intended. This sparks an
error message that the cluster is too long. It must then be
ungrouped in order to avoid the "cluster crash".
2) one must be very careful with changing data that it
hasn't already been annotated or tabulated, because WordCorr
allows you to change the data even if this has already been
done. If you do change such data then you get the cluster
crash. Ideally I think WordCorr should block you from
changing the data if tabulation has occurred, and should
warn you if annotation has occurred for that item.
(By cluster crash I mean that the clustering part of
annotating goes bung. Pressing enter on an annotation will
no longer bring up the "Edit alignment data" (1) until you
have ungrouped the cluster that broke the 7-digit rule or
(2) until you have retabulated the data which you had
accidentally changed after its tabulation.)
Joe rephrases:
1. You have a datum in some variety of the form
“bcdefghijk”. We’ll call it D1 for short.
2. You annotate the tag group that datum is in, and
tabulate it.
3. Later you find out that D1 needs correcting to D2,
which is “bcdhijk”, so you take out the “efg”.
4. You don’t have “dh” as a grapheme cluster yet, but you
recognize that it ought to be one.
5. You go to Annotate, select D2, and click on “Edit
Datum”, without first going to Refine, locating a copy of
the group D2 is part of, and clicking “Retabulate Group”.
6. You select “dh” in D2 and click on “Define Grapheme
Cluster”.
7. Wordcorr goes catatonic because the “xxxxxxxxxx”
vector in annotated-datums is too long.
Logged In: YES
user_id=1050693
Karl previously reported a slight variant on this bug:
Here's the error message:
An error has occurred:
java.lang.StringIndexOutOfBoundsException: String
index out of range: 9.
I was doing the same thing as last time - defining grapheme
clusters. The difference is that there was only one
grapheme cluster which I defined. But I believe there is
another common denominator between these two error
incidents. Right before double-clicking on the Short Name
to define the grapheme clusters, I had gone to the Data tab
and edited out a diacritic. I then switched to annotate and
did my business which brought about the error. I'm pretty
sure I had done this also in the previous error incident
(edited out a diacritic then gone into Annotate to annotate
the same lexeme). I wonder if this gives a clue why this is
happening.
Logged In: YES
user_id=1050693
Matt rephrases cause of bug:
Problem 1
1. You have a datum in some variety of the form
“bcdefghijk”. We’ll call it D1 for short.
2. Later you find out that D1 needs correcting to D2,
which is “bcdhijk”, so you take out the “efg”.
3. You don’t have “dh” as a grapheme cluster yet, but you
recognize that it ought to be one.
4. You go to Annotate, select D2, and click on “Edit Datum”.
5. You select “dh” in D2 and click on “Define Grapheme
Cluster”.
6. Wordcorr goes catatonic because the “xxxxxxxxxx”
vector in annotated-datums is too long.
(ie. WordCorr mustn't have updated some deeper database
level between steps 2 and 4).
Problem 2
1. You have a datum in some variety of the form
“bcdefghijklmn”. We’ll call it D1 for short.
2. Later you find out that D1 needs correcting to D2,
which is “bcdef”, so you take out the “ghijklmn”.
3. You don’t have “gh” as a grapheme cluster yet, but you
recognize that it ought to be one.
4. You go to Annotate, select D2, and click on “Edit Datum”.
5. You select “gh” in D2 and click on “Define Grapheme
Cluster”.
6. Wordcorr goes catatonic because the “xxxxxxxxxx”
vector in annotated-datums is too long.
(ie. WordCorr mustn't have updated some deeper database
level between steps 2 and 4 and thinks that I am grouping
all final graphemes).
Problem 3
1. You have a datum in some variety of the form
“bcdefghijk”. We’ll call it D1 for short.
2. You annotate the tag group (including grouping "de")
that datum is in, and tabulate it.
3. Later you find out that D1 needs correcting to D2,
which is “bcdhijk”, so you take out the “efg”.
4. Wordcorr goes catatonic because you've changed the
data which has already been tabulated.
(This problem I suggest needs to be fixed by disallowing you
to change data that has been tabulated. It also should give
you a warning before you change data that has been annotated.)
Logged In: YES
user_id=1050693
Matt describes some workarounds:
I realised it might be helpful to explain how I get around
the problems I encounter, in hope that it gives you an idea
how to fix it.
Problems 1 & 2:
After changing the word final characteristics of the datum,
I go to annotate mode, double click the datum, when it asks
do I want to create any consonant clusters in this word that
I've changed the final characteristics of, I select NO. Then
I cancel out of the dialogue box. Double click again, and
this time I am able to create consonant clusters without the
program going crazy. Ie. something happens in terms of
updating the vector for the datum when I enter the annotate
dialogue box that really should have happened before hand.
Does that make sense?
Problem 3:
Don't change data without checking if I need to retabulate
or uncluster annotations. This is tedious, and when I have
trained national colleagues in using WordCorr they have not
been diligent enough in this checking process and so the
program goes bung for them. The usability for them would be
improved if they were blocked from changing data that had
been tabulated, and warned against changing data that had
been annotated into grapheme clusters.