invalid method valueOf for target class java.lang.String
rimolive Jul 11, 2011 9:49 AMHere is my Byteman rule:
RULE Testing current variable content CLASS org.ajax4jsf.io.FastBufferReader METHOD writeTo(java.io.Writer) AT READ current BIND buffer:FastBufferReader = $this; current:CharBuffer = buffer.current; nullCurr:CharBuffer = null; content:String = "" IF current != nullCurr DO debug(content.valueOf(current.getChars()).toString()) ENDRULE
But I'm receiving the following error:
10:32:41,712 INFO [STDOUT] Rule.ensureTypeCheckedCompiled : error type checking rule Testing current variable content org.jboss.byteman.rule.exception.TypeException: MethodExpression.typeCheck : invalid method valueOf for target class java.lang.String file /home/rmartinelli/JBoss/Community/Byteman-1.5.1/rule.txt line 29 at org.jboss.byteman.rule.expression.MethodExpression.findMethod(MethodExpression.java:290) at org.jboss.byteman.rule.expression.MethodExpression.typeCheck(MethodExpression.java:172) at org.jboss.byteman.rule.expression.MethodExpression.typeCheck(MethodExpression.java:167) at org.jboss.byteman.rule.expression.MethodExpression.findMethod(MethodExpression.java:244) at org.jboss.byteman.rule.expression.MethodExpression.typeCheck(MethodExpression.java:172) at org.jboss.byteman.rule.Action.typeCheck(Action.java:106) at org.jboss.byteman.rule.Rule.typeCheck(Rule.java:505) at org.jboss.byteman.rule.Rule.ensureTypeCheckedCompiled(Rule.java:441) at org.jboss.byteman.rule.Rule.execute(Rule.java:652) at org.jboss.byteman.rule.Rule.execute(Rule.java:633) at org.ajax4jsf.io.FastBufferReader.writeTo(FastBufferReader.java:128) at org.ajax4jsf.io.parser.FastHtmlParser.parse(FastHtmlParser.java:169) at org.ajax4jsf.io.parser.FastHtmlParser.parseHtml(FastHtmlParser.java:230) at org.ajax4jsf.webapp.FilterServletResponseWrapper.parseContent(FilterServletResponseWrapper.java:594) at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:367) at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:295) at org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:373) at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:500) at org.jboss.seam.web.Ajax4jsfFilter.doFilter(Ajax4jsfFilter.java:56) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60) at org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:69) at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:638) at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispatcher.java:444) at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.java:382) at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.java:310) at org.apache.jasper.runtime.PageContextImpl.doForward(PageContextImpl.java:696) at org.apache.jasper.runtime.PageContextImpl.forward(PageContextImpl.java:667) at org.apache.jsp.index_jsp._jspService(index_jsp.java:59) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:369) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:322) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:249) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183) at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95) at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126) at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451) at java.lang.Thread.run(Thread.java:662)
I know that java.lang.String has the valueOf() method, but it seems for byteman this method doesn't exists. Am I doing something wrong? I tried also using new String() but the result is the same.