RE: IllegalArgumentException Exception in URLDecoder

"Christian Cryder" <[email protected]>
Newsgroups gmane.comp.java.enhydra.barracuda.general
Message-ID <[email protected]>
> Ahhhh.....  Ok, that makes sense.  So, Kirk, when the decode
> fails, but is
> caught, is the queryString valid?  If so, then I think I'll just add the
> try/catch as you've suggested unless anyone else has objections (better
> speak up soon, if so).

I'm ok with this...

----------------------------------------------
Christian Cryder
Internet Architect, ATMReports.com
Project Chair, BarracudaMVC - http://barracudamvc.org
----------------------------------------------
"Coffee? I could quit anytime, just not today"


> -----Original Message-----
> From: [email protected]
> [mailto:[email protected]]On Behalf Of Jacob Kjome
> Sent: Thursday, July 31, 2003 7:57 AM
> To: [email protected]
> Subject: RE: [Barracuda] IllegalArgumentException Exception in
> URLDecoder
>
>
> At 10:19 AM 7/31/2003 +0200, you wrote:
> >Hi Jake,
> >
> > >>Also, shouldn't we be using the non-deprecated method where
> we include the
> >encoding?
> >The method was deprecated between JDK 1.3 and 1.4.
> >I suppose it's just there to keep support for 1.3.
>
> Ahhhh.....  Ok, that makes sense.  So, Kirk, when the decode
> fails, but is
> caught, is the queryString valid?  If so, then I think I'll just add the
> try/catch as you've suggested unless anyone else has objections (better
> speak up soon, if so).
>
> Jake
>
>
> >-----Original Message-----
> >From: Jacob Kjome [mailto:[email protected]]
> >Sent: 30 July 2003 06:10
> >To: [email protected]
> >Subject: RE: [Barracuda] IllegalArgumentException Exception in
> >URLDecoder
> >
> >
> >Hi Kirk,
> >
> >Looks like something like that was already done before and reverted by
> >Christian for reasons that aren't documented.  The question is, if this
> >happens, what state is the "queryString" variable in?  Does this meet url
> >encoding spec requirements?  I'm no expert in this area.  If anyone has
> >something to say about this, please speak up.  In general, I
> think catching
> >the exception is probably a good thing even if it results in a
> string that
> >might not exactly match up with a the specs.
> >
> >Here is what was commented out...
> >
> >                      try {
> >                          queryString =
> >java.net.URLDecoder.decode(queryString, "UTF-8");
> >                      } catch (UnsupportedEncodingException e) {
> >                          System.out.println("Encoding Exception: "+e);
> >                          e.printStackTrace();
> >                      }
> >
> >Here is what replaced it...
> >
> >                       queryString =
> java.net.URLDecoder.decode(queryString);
> >
> >
> >Maybe it was reverted to much?  There are still runtime
> exceptions that can
> >be thrown whether or not the method states one will be thrown.  Also,
> >shouldn't we be using the non-deprecate method where we include the
> >encoding?  It was done in the commented out code.  What was the
> regression
> >that was seen?
> >
> >Besides this, here is a case where the servlet-2.3 class
> >javax.servlet.http.HttpServletRequestWrapper could really help out.  We
> >wouldn't even need to implement methods we really don't care about
> >including this one.  I think we need to make the move to servlet-2.3 at
> >some point.  Servlet-2.2 is very limiting.
> >
> >Jake
> >
> >
> >At 02:11 PM 7/30/2003 +0200, you wrote:
> > >To reply to my own mail..
> > >
> > >I put a empty try/catch block around the respective code...
> > >and just ignored the exception when it arose..
> > >
> > >ok.. it's a hack.. but at least it's not fallin over now..
> > >
> > >try {
> > >   queryString = java.net.URLDecoder.decode(queryString);
> > >} catch (Exception e) {}
> > >
> > >-----Original Message-----
> > >From: Kirk Daries [mailto:[email protected]]
> > >Sent: 30 July 2003 02:01
> > >To: [email protected]
> > >Subject: [Barracuda] IllegalArgumentException Exception in URLDecoder
> > >
> > >
> > >Hi Guys,
> > >
> > >I'm running into a exception...
> > >
> > >Basically... when I submit any text containing the symbol '%', it falls
> > >over.
> > >E.g.
> > >req.getQueryString() is: p_comments=Test+%25
> > >
> > >Which is "Test %"
> > >
> > >I've traced it to the HttpServletRequestWrapper class, line 398.
> > >
> > >Which says,
> > >queryString = java.net.URLDecoder.decode(queryString);
> > >
> > >I think the decode function is attempting to 'decode' the
> string a second
> > >time..
> > >
> > >Help?
> > >Regards
> > >KD
> > >
> > >java.lang.IllegalArgumentException: URLDecoder: Illegal hex
> characters in
> > >escape (%) pattern - For input string: "&p"
> > >         at java.net.URLDecoder.decode(URLDecoder.java:168)
> > >         at java.net.URLDecoder.decode(URLDecoder.java:82)
> > >         at
> >
> >org.enhydra.barracuda.core.helper.servlet.HttpServletRequestWrapp
> er.getPara
> >m
> > >eter(HttpServletRequestWrapper.java:398)
> > >         at
> >
> >org.enhydra.barracuda.core.event.DefaultEventContext.restoreConte
> xt(Default
> >E
> > >ventContext.java:224)
> > >         at
> >
> >org.enhydra.barracuda.core.event.DefaultEventContext.(DefaultEven
> tContext.j
> >a
> > >va:74)
> > >         at
> >
> >org.enhydra.barracuda.core.event.ApplicationGateway.handleDefault
> Ext(Applic
> >a
> > >tionGateway.java:398)
> > >         at
> >
> >org.enhydra.barracuda.core.event.ApplicationGateway.handleDefault
> (Applicati
> >o
> > >nGateway.java:234)
> > >         at
> >
> >org.enhydra.barracuda.core.event.ApplicationGateway.doGet(Applica
> tionGatewa
> >y
> > >.java:717)
> > >         at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
> > >         at
> javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> > >         at
> >
> >org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> Applicatio
> >n
> > >FilterChain.java:247)
> > >         at
> >
> >org.apache.catalina.core.ApplicationFilterChain.doFilter(Applicat
> ionFilterC
> >h
> > >ain.java:193)
> > >         at
> >
> >org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrap
> perValve.j
> >a
> > >va:256)
> > >         at
> >
> >org.apache.catalina.core.StandardPipeline$StandardPipelineValveCo
> ntext.invo
> >k
> > >eNext(StandardPipeline.java:643)
> > >         at
> >
> >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline
> .java:480)
> > >         at
> > >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> > >         at
> >
> >org.apache.catalina.core.StandardContextValve.invoke(StandardCont
> extValve.j
> >a
> > >va:191)
> > >         at
> >
> >org.apache.catalina.core.StandardPipeline$StandardPipelineValveCo
> ntext.invo
> >k
> > >eNext(StandardPipeline.java:643)
> > >         at
> >
> >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline
> .java:480)
> > >         at
> > >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> > >         at
> >
> >org.apache.catalina.core.StandardContext.invoke(StandardContext.j
> ava:2415)
> > >         at
> >
> >org.apache.catalina.core.StandardHostValve.invoke(StandardHostVal
> ve.java:18
> >0
> > >)
> > >         at
> >
> >org.apache.catalina.core.StandardPipeline$StandardPipelineValveCo
> ntext.invo
> >k
> > >eNext(StandardPipeline.java:643)
> > >         at
> >
> >org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispa
> tcherValve
> >.
> > >java:171)
> > >         at
> >
> >org.apache.catalina.core.StandardPipeline$StandardPipelineValveCo
> ntext.invo
> >k
> > >eNext(StandardPipeline.java:641)
> > >         at
> >
> >org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportVal
> ve.java:17
> >2
> > >)
> > >         at
> >
> >org.apache.catalina.core.StandardPipeline$StandardPipelineValveCo
> ntext.invo
> >k
> > >eNext(StandardPipeline.java:641)
> > >         at
> >
> >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline
> .java:480)
> > >         at
> > >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> > >         at
> >
> >org.apache.catalina.core.StandardEngineValve.invoke(StandardEngin
> eValve.jav
> >a
> > >:174)
> > >         at
> >
> >org.apache.catalina.core.StandardPipeline$StandardPipelineValveCo
> ntext.invo
> >k
> > >eNext(StandardPipeline.java:643)
> > >         at
> >
> >org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline
> .java:480)
> > >         at
> > >org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995)
> > >         at
> > >org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223)
> > >         at
> >
> >org.apache.coyote.http11.Http11Processor.process(Http11Processor.
> java:594)
> > >         at
> >
> >org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.p
> rocessConn
> >e
> > >ction(Http11Protocol.java:392)
> > >         at
> >
> >org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.
> java:565)
> > >         at
> >
> >org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(Thr
> eadPool.ja
> >v
> > >a:619)
> > >         at java.lang.Thread.run(Thread.java:534)
> > >
> > >_______________________________________________
> > >Barracuda mailing list
> > >[email protected]
> > >http://barracudamvc.org/lists/listinfo/barracuda
> > >_______________________________________________
> > >Barracuda mailing list
> > >[email protected]
> > >http://barracudamvc.org/lists/listinfo/barracuda
> >
> >_______________________________________________
> >Barracuda mailing list
> >[email protected]
> >http://barracudamvc.org/lists/listinfo/barracuda
> >_______________________________________________
> >Barracuda mailing list
> >[email protected]
> >http://barracudamvc.org/lists/listinfo/barracuda
>
> _______________________________________________
> Barracuda mailing list
> [email protected]
> http://barracudamvc.org/lists/listinfo/barracuda
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.