[Bug libgcj/20435] New: regex pattern compiling bug

green at redhat dot com gcc-bugzilla@gcc.gnu.org
Tue Mar 15 17:39:00 GMT 2005


The following test code (derived from the blojsom wiki code) exposes a bug in
our regex compiler....


import java.util.regex.Pattern;

public class pat
{
    private static final String YMD_PERMALINK_REGEX =
"/(\\d\\d\\d\\d)/(\\d{1,2}+)/(\\d{1,2}+)/(.+)";
    private static final Pattern YMD_PERMALINK_PATTERN =
Pattern.compile(YMD_PERMALINK_REGEX, Pattern.UNICODE_CASE);

    public static void main (String[] args)
    {
        System.out.println ("ok");
    }
}



This should print "ok", but instead we get:

$ gij pat
Exception in thread "main" java.lang.ExceptionInInitializerError
   at java.lang.Class.initializeClass() (/usr/lib/libgcj.so.6.0.0)
   at java.lang.Class.forName(java.lang.String, boolean, java.lang.ClassLoader)
(/usr/lib/libgcj.so.6.0.0)
   at java.lang.Class.forName(java.lang.String) (/usr/lib/libgcj.so.6.0.0)
   at gnu.java.lang.MainThread.run() (/usr/lib/libgcj.so.6.0.0)
Caused by: java.util.regex.PatternSyntaxException: At position 8 in regular
expression pattern:
attempted to repeat a token that is already repeated
        /(\d\d\d\d)/(\d{1,2}+)/(\d{1,2}+)/(.+)
                ^
   at java.util.regex.Pattern.Pattern(java.lang.String, int)
(/usr/lib/libgcj.so.6.0.0)
   at java.util.regex.Pattern.compile(java.lang.String, int)
(/usr/lib/libgcj.so.6.0.0)
   at pat.<clinit>() (Unknown Source)
   at java.lang.Class.initializeClass() (/usr/lib/libgcj.so.6.0.0)
   ...3 more

-- 
           Summary: regex pattern compiling bug
           Product: gcc
           Version: 4.0.0
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: libgcj
        AssignedTo: unassigned at gcc dot gnu dot org
        ReportedBy: green at redhat dot com
                CC: gcc-bugs at gcc dot gnu dot org,java-prs at gcc dot gnu
                    dot org
  GCC host triplet: i686-pc-linux-gnu


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=20435



More information about the Java-prs mailing list