|
Re: java.lang.String.replaceFirst from IBM VM throws NPE: msg#00924java.harmony.devel
But the way, how it affects the performance? java.lang.String is the most used class and even such simple operations will cause loading of full regex package. On 2/21/06, Oliver Deakin <oliver.deakin@xxxxxxxxxxxxxx> wrote: > > Hi Alexey, > > Looking in there (these calls can also be seen if > the test is run within a debugger), we see that the replaceFirst(String, > String) implementation is: > > public String replaceFirst(String expr, String substitute) { > return Pattern.compile(expr).matcher(this).replaceFirst(substitute); > } > > Unfortunately the implementation of Pattern at > modules/regex/src/main/java/java/util/regex/Pattern.java is only a stub > (as HARMONY-39 has not yet been accepted into the Harmony SVN > repository) and as such just returns null. Thus when we try to > dereference the return from Pattern.compile(expr) we receive a > NullPointerException. Once the regex in HARMONY-39 is moved into SVN > this should go away. > > > As a sideline, I think we should be able to move String.java out of > kernel entirely anyway. We already have an implementation at > modules/kernel/src/main/java/java/lang/String.java, and the only VM > specific code in String is the intern() method. This method could simply > be redirected to call VM.intern(String), a class which is within kernel, > and then String.java can be moved into LUNI. It also means that the VM > writer(s) need not implement the rest of the String class unnecessarily. > Sound good? > > > Alexey Petrenko wrote: > > We got problem with Harmony on IBM VM on Windows. > > java.lang.String.replaceFirst throws NPE. > > > > Here is the testcase: > > public class Test { > > public static void main(String args[]) { > > String xx = "test"; > > xx = xx.replaceFirst("t","z"); > > } > > } > > > > Here is the stack trace: > > C:\Work\Harmony\Sources\Harmony\deploy\jre\bin>java Test > > Exception in thread "main" java.lang.NullPointerException > > at java.lang.String.replaceFirst(String.java:1642) > > at Test.main(Test.java:4) > > > > Since IBM VM is not an OpenSource I can not check java.lang.String for > > the cause of this problem :( > > > > Can we ask IBM guys somehow to fix this issue? > > > > -- > > Alexey A. Petrenko > > Intel Middleware Products Division > > > > -- > Oliver Deakin > IBM United Kingdom Limited > > -- Sergey Soldatov Intel Middleware Products Division
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | Re: classlib ant clean is incomplete, Mark Hindess |
|---|---|
| Next by Date: | Re: Proposal: Wrap ICU4J to implement java.text.DecimalFormat enhancement of Java 5.0, Paulex Yang |
| Previous by Thread: | Re: java.lang.String.replaceFirst from IBM VM throws NPE, Tim Ellison |
| Next by Thread: | Re: java.lang.String.replaceFirst from IBM VM throws NPE, Oliver Deakin |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |