commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Frederick Salardi (JIRA)" <j...@apache.org>
Subject [jira] Created: (MATH-198) java.lang.StringIndexOutOfBoundsException in ComplexFormat.parse(String source, ParsePosition pos)
Date Tue, 18 Mar 2008 23:08:24 GMT
java.lang.StringIndexOutOfBoundsException in ComplexFormat.parse(String source, ParsePosition
pos)
--------------------------------------------------------------------------------------------------

                 Key: MATH-198
                 URL: https://issues.apache.org/jira/browse/MATH-198
             Project: Commons Math
          Issue Type: Bug
    Affects Versions: 1.2
         Environment: Ubuntu 7.10, JDK 6.0, PC
            Reporter: Frederick Salardi


The parse(String source, ParsePosition pos) method in the ComplexFormat class does not check
whether the imaginary character is set or not which produces StringIndexOutOfBoundsException
in the substring method :

(line 375 of ComplexFormat)
...
        // parse imaginary character
        int n = getImaginaryCharacter().length();
        
        startIndex = pos.getIndex();
        int endIndex = startIndex + n;
        if (source.substring(startIndex, endIndex).compareTo(
            getImaginaryCharacter()) != 0) {
...
I encoutered this exception typing in a JTextFied with ComplexFormat set to look up an AbstractFormatter.
If only the user types the imaginary part of the complex number first, he gets this exception.

Solution: Before setting to n length of the imaginary character, check if the source contains
it. My proposal:
...
        int n = 0;
        if (source.contains(getImaginaryCharacter()))
        n = getImaginaryCharacter().length();
...		 

F.S.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message