[ https://issues.apache.org/jira/browse/FELIX-1645?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Work on FELIX-1645 started by Freeman Fang. > add null and empty check for FeaturesServiceImpl.readValue(String val) > ----------------------------------------------------------------------- > > Key: FELIX-1645 > URL: https://issues.apache.org/jira/browse/FELIX-1645 > Project: Felix > Issue Type: Improvement > Components: Karaf > Reporter: Freeman Fang > Assignee: Freeman Fang > > to avoid the exception like > 11:50:26,570 | ERROR | pool-2-thread-1 | FeaturesServiceImpl | > res.internal.FeaturesServiceImpl 509 | Error loading FeaturesService state > java.lang.NumberFormatException: For input string: "" > at > java.lang.NumberFormatException.forInputString(NumberFormatException.java:48) > at java.lang.Long.parseLong(Long.java:424) > at java.lang.Long.parseLong(Long.java:461) > at > org.apache.felix.karaf.features.internal.FeaturesServiceImpl.readValue(FeaturesServiceImpl.java:565) > at > org.apache.felix.karaf.features.internal.FeaturesServiceImpl.loadMap(FeaturesServiceImpl.java:545) > at > org.apache.felix.karaf.features.internal.FeaturesServiceImpl.loadState(FeaturesServiceImpl.java:501) > at > org.apache.felix.karaf.features.internal.FeaturesServiceImpl.start(FeaturesServiceImpl.java:406) > 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:585) > at > org.apache.geronimo.blueprint.utils.ReflectionUtils.invoke(ReflectionUtils.java:206) > at > org.apache.geronimo.blueprint.container.BeanRecipe.invoke(BeanRecipe.java:639) > at > org.apache.geronimo.blueprint.container.BeanRecipe.internalCreate(BeanRecipe.java:517) > at > org.apache.geronimo.blueprint.di.AbstractRecipe.create(AbstractRecipe.java:64) > at > org.apache.geronimo.blueprint.container.BlueprintRepository.createInstances(BlueprintRepository.java:212) > at > org.apache.geronimo.blueprint.container.BlueprintRepository.createAll(BlueprintRepository.java:140) > at > org.apache.geronimo.blueprint.container.BlueprintContainerImpl.instantiateEagerComponents(BlueprintContainerImpl.java:603) > at > org.apache.geronimo.blueprint.container.BlueprintContainerImpl.doRun(BlueprintContainerImpl.java:310) > at > org.apache.geronimo.blueprint.container.BlueprintContainerImpl.run(BlueprintContainerImpl.java:211) > at > java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:417) > at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:269) > at java.util.concurrent.FutureTask.run(FutureTask.java:123) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:65) > at > java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:172) > at > java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:651) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:676) > at java.lang.Thread.run(Thread.java:613) > during runtime -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.