Uploaded image for project: 'S2Dao.NET'
  1. S2Dao.NET
  2. DAONET-49

数字を含む引数をDaoのメソッドに渡すとJScriptEvaluateRuntimeExceptionが発生

XMLWordPrintable

    • Type: Icon: Bug Bug
    • Resolution: Fixed
    • Priority: Icon: Major Major
    • 1.0.3
    • Affects Version/s: 1.0.3
    • Component/s: S2Dao.NET
    • None
    • Environment:
      S2Container.NET 1.2.8.0
      S2Dao.NET 1.0.3.0

      see [seasar-dotnet:467]

      現在、Daoインターフェースに以下のようなメソッドを定義しています。
      [Seasar.Dao.Attrs.Sql("select * from shop_OrderDetail /*BEGIN*/ where /*IF par1am.HasValue*/ order_detail_id = 1 /*END*/ /*END*/")]
      IList SelectListByIncludeNumberParam(Nullables.NullableDecimal par1am);

      ここで上記メソッドを呼び出すとJScript.NETから下記のような例外が帰ってきます。
      --------------------------------------------------------------------------------
      Seasar.Framework.Exceptions.JScriptEvaluateRuntimeException: [ESSR0073]JScriptException occured, because self.GetArg('par1am') self.GetArg('.HasValue')

      場所 Seasar.Framework.Util.JScriptUtil.Evaluate(String exp, Hashtable ctx, Object root)
      場所 Seasar.Dao.Node.AbstractNode.InvokeExpression(String expression, ICommandContext ctx)
      場所 Seasar.Dao.Node.IfNode.Accept(ICommandContext ctx)
      場所 Seasar.Dao.Node.ContainerNode.Accept(ICommandContext ctx)
      場所 Seasar.Dao.Node.BeginNode.Accept(ICommandContext ctx)
      場所 Seasar.Dao.Node.ContainerNode.Accept(ICommandContext ctx)
      場所 Seasar.Dao.Impl.SelectDynamicCommand.Execute(Object[] args)
      場所 XXX.Dao.Allcommon.s2dao.S2DaoInterceptor.Invoke(IMethodInvocation invocation) 場所 S2DaoInterceptor.cs:行 107
      場所 Seasar.Framework.Aop.Proxy.AopProxy.Invoke(IMessage msg)
      場所 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type)
      場所 XXX.Dao.Exdao.ShopOrderDetailDao.SelectListByIncludeNumberParam(NullableDecimal par1am)
      場所 XXXTest.S2Dao.QueryAnnotationTest.SelectListByNumberIncludeParamTest() 場所 QueryAnnotationTest.cs:行 35

      System.Reflection.TargetInvocationException: 呼び出しのターゲットが例外をスローしました。

      場所 System.RuntimeMethodHandle._InvokeMethodFast(Object target, Object[] arguments, SignatureStruct& sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
      場所 System.RuntimeMethodHandle.InvokeMethodFast(Object target, Object[] arguments, Signature sig, MethodAttributes methodAttributes, RuntimeTypeHandle typeOwner)
      場所 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, Boolean skipVisibilityChecks)
      場所 System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
      場所 System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
      場所 Seasar.Framework.Util.JScriptUtil.Evaluate(String exp, Hashtable ctx, Object root)

      Microsoft.JScript.JScriptException: ';' が必要です。

      eval code: 行 1 - エラー: ';' が必要です。
      --------------------------------------------------------------------------------

            Assignee:
            rmiyax rmiyax
            Reporter:
            rmiyax rmiyax
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: