[JVM] Getting error "Infinite loop in property interpolation" while reading properties from file

2,754 views
Skip to first unread message

shivi malviya

unread,
Mar 6, 2014, 1:41:52 AM3/6/14
to cu...@googlegroups.com
Hi,
I am running my cucumber features, and I am trying to read my properties like "browser name", "URL" from .properties file. But it is giving me error as :

java.lang.ExceptionInInitializerError
at com.hm.about.stepdefs.EnterNewsRoomStepDefinition.user_visiting_the_about_hm_com(EnterNewsRoomStepDefinition.java:25)
  at ✽.Given user visiting the about.hm.com(C:\j2ee\projects\about\trunk\hmabout\hmabout-cucumber-test\src\main\resources\aboutfeatures\US6005EnterNewsRoom.feature:5)
Caused by: java.lang.IllegalStateException: Infinite loop in property interpolation of ${cucumber.selenium.url}: cucumber.selenium.url
  at org.apache.commons.lang.text.StrSubstitutor.checkCyclicSubstitution(StrSubstitutor.java:630)
  at org.apache.commons.lang.text.StrSubstitutor.substitute(StrSubstitutor.java:583)
  at org.apache.commons.lang.text.StrSubstitutor.substitute(StrSubstitutor.java:593)
  at org.apache.commons.lang.text.StrSubstitutor.substitute(StrSubstitutor.java:521)
  at org.apache.commons.lang.text.StrSubstitutor.replace(StrSubstitutor.java:263)
  at org.apache.commons.configuration.PropertyConverter.interpolate(PropertyConverter.java:1010)
  at org.apache.commons.configuration.AbstractConfiguration.interpolate(AbstractConfiguration.java:449)
  at org.apache.commons.configuration.AbstractConfiguration.interpolate(AbstractConfiguration.java:436)
  at org.apache.commons.configuration.AbstractConfiguration.getString(AbstractConfiguration.java:1042)
  at org.apache.commons.configuration.AbstractConfiguration.getString(AbstractConfiguration.java:1021)
  at com.hm.about.model.PageFactoryBase.<clinit>(PageFactoryBase.java:44)
  at com.hm.about.stepdefs.EnterNewsRoomStepDefinition.user_visiting_the_about_hm_com(EnterNewsRoomStepDefinition.java:25)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:601)
  at cucumber.runtime.Utils$1.call(Utils.java:44)
  at cucumber.runtime.Timeout.timeout(Timeout.java:12)
  at cucumber.runtime.Utils.invoke(Utils.java:40)
  at cucumber.runtime.java.JavaStepDefinition.execute(JavaStepDefinition.java:35)
  at cucumber.runtime.StepDefinitionMatch.runStep(StepDefinitionMatch.java:38)
  at cucumber.runtime.Runtime.runStep(Runtime.java:271)
  at cucumber.runtime.model.StepContainer.runStep(StepContainer.java:44)
  at cucumber.runtime.model.StepContainer.runSteps(StepContainer.java:39)
  at cucumber.runtime.model.CucumberScenario.run(CucumberScenario.java:40)
  at cucumber.runtime.model.CucumberFeature.run(CucumberFeature.java:116)
  at cucumber.runtime.Runtime.run(Runtime.java:102)
  at cucumber.runtime.Runtime.run(Runtime.java:90)
  at cucumber.api.cli.Main.run(Main.java:20)
  at cucumber.api.cli.Main.main(Main.java:12)
  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
  at java.lang.reflect.Method.invoke(Method.java:601)
  at com.intellij.rt.execution.application.AppMain.main(AppMain.java:120)


I have kept my properties file under path /src/test/resources/. I am attaching my POM file as well.

Please suggest how should I resolve this.

Thanks,
Shivi
pom.xml

Paolo Ambrosio

unread,
Mar 6, 2014, 2:06:45 AM3/6/14
to cu...@googlegroups.com
On Thu, Mar 6, 2014 at 6:41 AM, shivi malviya <malviy...@gmail.com> wrote:
> Hi,
> I am running my cucumber features, and I am trying to read my properties
> like "browser name", "URL" from .properties file.

This question is not related to Cucumber, but how Apache Commons
Configuration is used in your step definitions. You should look at
line 44 of PageFactoryBase.java as your stack trace shows.
Reading the stacktrace might help.

java.lang.IllegalStateException: Infinite loop in property
interpolation of ${cucumber.selenium.url}: cucumber.selenium.url

This suggests me that you have a loop in your variable expansion. If
you still cannot figure out how to fix it, you might consider the
Apache Commons mailing list.

> Thanks,
> Shivi
Reply all
Reply to author
Forward
0 new messages