[TUIGWAA-90] フィルタ名にOGNL的に許されない文字列があると次回起動時にエラーとなる Created: 21/Sep/06  Updated: 29/Sep/06  Resolved: 29/Sep/06

Status: Resolved
Project: Tuigwaa
Component/s: database
Affects Version/s: 0.9.1
Fix Version/s: 1.0

Type: Bug Priority: Major
Reporter: someda Assignee: someda
Resolution: Fixed Votes: 0
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



 Comments   
Comment by someda [ 21/Sep/06 ]

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

Comment by someda [ 28/Sep/06 ]
  • フィルタ名
  • カスタムフォーム名
  • 検索フォーム名
  • 更新ルール名
  • ロジック名

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

Comment by someda [ 29/Sep/06 ]

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

Generated at Sat Dec 14 12:20:14 JST 2019 using JIRA 7.9.2#79002-sha1:3bb15b68ecd99a30eb364c4c1a393359bcad6278.