Uploaded image for project: 'Tuigwaa'
  1. Tuigwaa
  2. TUIGWAA-90

フィルタ名にOGNL的に許されない文字列があると次回起動時にエラーとなる

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 0.9.1
    • Fix Version/s: 1.0
    • Component/s: database
    • Labels:
      None

      Description

      フィルタ名に OGNL として適切でない文字列を保存した場合に、保存自体は可能だが次回起動時にアプリケーションエラーとなる。

      例えばフィルタ名に「そ%フィルタ」とつけた場合に以下のようになる。

      parseExpression["そ\%フィルタ"]
      Exception occured at /components[1]/component[2]/property[8]
      org.seasar.framework.exception.OgnlRuntimeException: [ESSR0073]OGNLで例外が発生しました。理由はognl.ExpressionSyntaxException: Malformed OGNL expression: "そ%フィルタ" [ognl.TokenMgrError: Lexical error at line 1, column 4. Encountered: "%" (37), after : "\"\u305d\\"]
      at org.seasar.framework.util.OgnlUtil.parseExpression(OgnlUtil.java:67)
      at org.seasar.framework.container.impl.ArgDefImpl.setExpression(ArgDefImpl.java:101)
      at org.seasar.framework.container.factory.PropertyTagHandler.end(PropertyTagHandler.java:62)
      at org.seasar.framework.xml.SaxHandler.end(SaxHandler.java:166)
      at org.seasar.framework.xml.SaxHandler.end(SaxHandler.java:160)
      at org.seasar.framework.xml.SaxHandler.endElement(SaxHandler.java:70)
      at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
      at org.apache.xerces.impl.dtd.XMLDTDValidator.endNamespaceScope(Unknown Source)
      at org.apache.xerces.impl.dtd.XMLDTDValidator.handleEndElement(Unknown Source)
      at org.apache.xerces.impl.dtd.XMLDTDValidator.endElement(Unknown Source)
      at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
      at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
      at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
      at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
      at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
      at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
      at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
      at javax.xml.parsers.SAXParser.parse(Unknown Source)
      at org.seasar.framework.util.SAXParserUtil.parse(SAXParserUtil.java:41)
      at org.seasar.framework.xml.SaxHandlerParser.parse(SaxHandlerParser.java:59)
      at org.seasar.framework.xml.SaxHandlerParser.parse(SaxHandlerParser.java:55)
      at org.seasar.framework.container.factory.XmlS2ContainerBuilder.parse(XmlS2ContainerBuilder.java:71)
      at org.seasar.framework.container.factory.XmlS2ContainerBuilder.build(XmlS2ContainerBuilder.java:58)
      at org.seasar.framework.container.factory.S2ContainerFactory$DefaultProvider.create(S2ContainerFactory.java:166)
      at org.seasar.framework.container.factory.S2ContainerFactory.create(S2ContainerFactory.java:58)
      at com.isenshi.util.extlib.DiconResource.load(DiconResource.java:83)
      at org.seasar.tuigwaa.model.DAOServiceImpl.loadDiconResource(DAOServiceImpl.java:248)
      at org.seasar.tuigwaa.model.DAOServiceImpl.loadFunctions(DAOServiceImpl.java:97)
      at org.seasar.tuigwaa.system.ServiceHelperImpl.setupControllerConfigs(ServiceHelperImpl.java:96)
      at org.seasar.tuigwaa.system.SiteServiceImpl.loadSite(SiteServiceImpl.java:132)
      at org.seasar.tuigwaa.system.SiteServiceImpl.loadAllSites(SiteServiceImpl.java:116)
      at org.seasar.tuigwaa.system.TgwSystemServiceImpl.init(TgwSystemServiceImpl.java:40)
      at org.seasar.tuigwaa.controller.TuigwaaActionServlet.init(TuigwaaActionServlet.java:53)
      at javax.servlet.GenericServlet.init(GenericServlet.java:211)
      at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1029)
      at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:862)
      at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4013)
      at org.apache.catalina.core.StandardContext.start(StandardContext.java:4357)
      at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:823)
      at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:807)
      at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:595)
      at org.apache.catalina.core.StandardHostDeployer.addChild(StandardHostDeployer.java:903)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at org.apache.commons.beanutils.MethodUtils.invokeMethod(MethodUtils.java:216)
      at org.apache.commons.digester.SetNextRule.end(SetNextRule.java:256)
      at org.apache.commons.digester.Rule.end(Rule.java:276)
      at org.apache.commons.digester.Digester.endElement(Digester.java:1058)
      at org.apache.catalina.util.CatalinaDigester.endElement(CatalinaDigester.java:76)
      at org.apache.xerces.parsers.AbstractSAXParser.endElement(Unknown Source)
      at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanEndElement(Unknown Source)
      at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown Source)
      at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
      at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
      at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
      at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
      at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
      at org.apache.commons.digester.Digester.parse(Digester.java:1567)
      at org.apache.catalina.core.StandardHostDeployer.install(StandardHostDeployer.java:488)
      at org.apache.catalina.core.StandardHost.install(StandardHost.java:863)
      at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:483)
      at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:427)
      at org.apache.catalina.startup.HostConfig.start(HostConfig.java:983)
      at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:349)
      at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
      at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1091)
      at org.apache.catalina.core.StandardHost.start(StandardHost.java:789)
      at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1083)
      at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:478)
      at org.apache.catalina.core.StandardService.start(StandardService.java:480)
      at org.apache.catalina.core.StandardServer.start(StandardServer.java:2313)
      at org.apache.catalina.startup.Catalina.start(Catalina.java:556)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:324)
      at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:287)
      at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:425)
      Caused by: ognl.ExpressionSyntaxException: Malformed OGNL expression: "そ%フィルタ" [ognl.TokenMgrError: Lexical error at line 1, column 4. Encountered: "%" (37), after : "\"\u305d\\"]
      at ognl.Ognl.parseExpression(Ognl.java:119)
      at org.seasar.framework.util.OgnlUtil.parseExpression(OgnlUtil.java:64)
      ... 79 more

        Activity

        Hide
        someda someda added a comment -

        「そ%フィルタ」
        ではなく
        「そ%フィルタ」
        でした。

        Show
        someda someda added a comment - 「そ%フィルタ」 ではなく 「そ%フィルタ」 でした。
        Hide
        someda someda added a comment -
        • フィルタ名
        • カスタムフォーム名
        • 検索フォーム名
        • 更新ルール名
        • ロジック名

        という dicon にて永続化される名前についてバックスラッシュを利用できないよう
        validation に mask を追加。

        Show
        someda someda added a comment - フィルタ名 カスタムフォーム名 検索フォーム名 更新ルール名 ロジック名 という dicon にて永続化される名前についてバックスラッシュを利用できないよう validation に mask を追加。
        Hide
        someda someda added a comment -

        加えて
        > 及び < も含まないように変更

        Show
        someda someda added a comment - 加えて > 及び < も含まないように変更

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development