libgcj/7292: java.lang.Character.toString(char) should be static

jmr@fulcrummicro.com jmr@fulcrummicro.com
Fri Jul 12 13:36:00 GMT 2002


>Number:         7292
>Category:       libgcj
>Synopsis:       java.lang.Character.toString(char) should be static
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    unassigned
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Fri Jul 12 13:36:00 PDT 2002
>Closed-Date:
>Last-Modified:
>Originator:     Jesse Rosenstock
>Release:        3.2 20020710 (experimental)
>Organization:
>Environment:
System: Linux churchill 2.4.3-12 #1 Fri Jun 8 15:05:56 EDT 2001 i686 unknown
Architecture: i686

	
host: i686-pc-linux-gnu
build: i686-pc-linux-gnu
target: i686-pc-linux-gnu
configured with: ./configure --prefix=/home/user/jmr/app/gcc
>Description:
	java.lang.Character.toString(char) should be static, but it isn't.
>How-To-Repeat:
        Create C.java:

        public class C {
            void f() {
                Character.toString('x');
            }
        }

        gcj -v C.java gives:

        Reading specs from /home/user/jmr/app/gcc/lib/gcc-lib/i686-pc-linux-gnu/3.2/specs
        Reading specs from /home/user/jmr/app/gcc/lib/gcc-lib/i686-pc-linux-gnu/3.2/../../../libgcj.spec
        rename spec lib to liborig
        Configured with: ./configure --prefix=/home/user/jmr/app/gcc
        Thread model: single
        gcc version 3.2 20020710 (experimental)
         /home/user/jmr/app/gcc/lib/gcc-lib/i686-pc-linux-gnu/3.2/jc1 C.java -fno-use-divide-subroutine -fuse-boehm-gc -fnon-call-exceptions -fkeep-inline-functions -quiet -dumpbase C.java -g1 -version -o /tmp/ccR1HymH.s
        GNU Java version 3.2 20020710 (experimental) (i686-pc-linux-gnu)
                compiled by GNU C version 2.96 20000731 (Red Hat Linux 7.1 2.96-85).
        Class path starts here:
            /home/user/jmr/gcj_test/char/
            /home/user/jmr/app/gcc/share/java/libgcj-3.2.jar/ (system) (zip)
        C.java: In class `C':
        C.java: In method `C.f()':
        C.java:3: error: Can't make static reference to method `java.lang.String java.lang.Character.toString(char)' in class `java.lang.Character'.
                   Character.toString('x');
                            ^
        1 error

        This works with javac, and according to the sun javadoc, that
        method should be static.

        Workaround is to use String.valueOf(char) instead.
>Fix:
*** Character.java.orig Fri Jul 12 13:20:44 2002
--- Character.java      Fri Jul 12 13:20:58 2002
***************
*** 1488,1494 ****
     * @return a String containing the character
     * @since 1.4
     */
!   public String toString(char ch)
    {
      // This assumes that String.valueOf(char) can create a single-character
      // String more efficiently than through the public API.
--- 1488,1494 ----
     * @return a String containing the character
     * @since 1.4
     */
!   public static String toString(char ch)
    {
      // This assumes that String.valueOf(char) can create a single-character
      // String more efficiently than through the public API.
>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the Gcc-prs mailing list