Given:
1) an XML having the % sign in one of the values
example:
<?xml version='1.0' encoding='utf-8' ?>
<tst>
   <details>
      <somename>less than 50% </somename>
   </details>
</tst>

2) a script on a website (WS1) that submit that XML to other website (WS2) that is running CF8 (if the actual verion even matter)
The issue:
When submitting that XML with HTTP POST the following error is happening on WS2:
500

ROOT CAUSE:
java.lang.IllegalArgumentException
   at coldfusion.filter.FormScope.parseName(FormScope.java:367)
   at coldfusion.filter.FormScope.parseQueryString(FormScope.java:324)
   at coldfusion.filter.FormScope.parsePostData(FormScope.java:293)
   at coldfusion.filter.FormScope.fillForm(FormScope.java:243)
   at coldfusion.filter.FusionContext.SymTab_initForRequest(FusionContext.java:430)
   at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:33)
   at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
   at coldfusion.filter.RequestThrottleFilter.invoke(RequestThrottleFilter.java:126)
   at coldfusion.CfmServlet.service(CfmServlet.java:175)
   at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
   at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
   at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
   at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
   at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
   at jrun.servlet.FilterChain.service(FilterChain.java:101)
   at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
   at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
   at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:284)
   at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
   at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)
   at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)
   at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
   at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)
   at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)


javax.servlet.ServletException: ROOT CAUSE:
java.lang.IllegalArgumentException
   at coldfusion.filter.FormScope.parseName(FormScope.java:367)
   at coldfusion.filter.FormScope.parseQueryString(FormScope.java:324)
   at coldfusion.filter.FormScope.parsePostData(FormScope.java:293)
   at coldfusion.filter.FormScope.fillForm(FormScope.java:243)
   at coldfusion.filter.FusionContext.SymTab_initForRequest(FusionContext.java:430)
   at coldfusion.filter.GlobalsFilter.invoke(GlobalsFilter.java:33)
   at coldfusion.filter.DatasourceFilter.invoke(DatasourceFilter.java:22)
   at coldfusion.filter.RequestThrottleFilter.invoke(RequestThrottleFilter.java:126)
   at coldfusion.CfmServlet.service(CfmServlet.java:175)
   at coldfusion.bootstrap.BootstrapServlet.service(BootstrapServlet.java:89)
   at jrun.servlet.FilterChain.doFilter(FilterChain.java:86)
   at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:42)
   at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
   at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
   at jrun.servlet.FilterChain.service(FilterChain.java:101)
   at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
   at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
   at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:284)
   at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
   at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)
   at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)
   at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
   at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)
   at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)

   at coldfusion.monitor.event.MonitoringServletFilter.doFilter(MonitoringServletFilter.java:70)
   at coldfusion.bootstrap.BootstrapFilter.doFilter(BootstrapFilter.java:46)
   at jrun.servlet.FilterChain.doFilter(FilterChain.java:94)
   at jrun.servlet.FilterChain.service(FilterChain.java:101)
   at jrun.servlet.ServletInvoker.invoke(ServletInvoker.java:106)
   at jrun.servlet.JRunInvokerChain.invokeNext(JRunInvokerChain.java:42)
   at jrun.servlet.JRunRequestDispatcher.invoke(JRunRequestDispatcher.java:284)
   at jrun.servlet.ServletEngineService.dispatch(ServletEngineService.java:543)
   at jrun.servlet.jrpp.JRunProxyService.invokeRunnable(JRunProxyService.java:203)
   at jrunx.scheduler.ThreadPool$DownstreamMetrics.invokeRunnable(ThreadPool.java:320)
   at jrunx.scheduler.ThreadPool$ThreadThrottle.invokeRunnable(ThreadPool.java:428)
   at jrunx.scheduler.ThreadPool$UpstreamMetrics.invokeRunnable(ThreadPool.java:266)
   at jrunx.scheduler.WorkerThread.run(WorkerThread.java:66)


IF the % sign is taken off from the XML everything works fine and no error is generated.

NOTE 1: If the script doing the post is emulated on WS2 (so that the XML being submitted from WS2 to WS2), that "500" does not happen.

NOTE 2: The error seem to happen not on the application (because an test output followed by CFABORT just at the start of Application.cfm file does not change anything and the script on WS2 still get the error and not the test output).

NOTE 3: First the CF8 was on Java 1.5 . Then we reinstalled CF8, so it's on the default Java 6 now. But the error is still there.

ANY suggestions would be VERY appreciated!!!