Menu

#177 infinite error loop Name Field Required

open
nobody
None
9
2005-06-02
2005-05-18
Nathan
No

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.

Discussion

  • Nathan

    Nathan - 2005-05-18

    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)

     
  • Nathan

    Nathan - 2005-05-18

    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.

     
  • Joseph E. Grimes

    • priority: 5 --> 9
     
  • Nathan

    Nathan - 2006-04-21

    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.

     
  • Nathan

    Nathan - 2006-04-21

    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.

     
  • Nathan

    Nathan - 2006-04-25

    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.)

     
  • Nathan

    Nathan - 2006-04-25

    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.

     

Log in to post a comment.