[ 
https://issues.apache.org/jira/browse/FELIX-721?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12630502#action_12630502
 ] 

Stuart McCulloch commented on FELIX-721:
----------------------------------------

Another option (if it is truly random) would be to locally build the FilterImpl 
with additional instrumentation to capture the original string used to build 
the filter - then when it failed with the NPE you could dump the string along 
with various other fields from the filter object...


> NPE in FilterImpl.toString()
> ----------------------------
>
>                 Key: FELIX-721
>                 URL: https://issues.apache.org/jira/browse/FELIX-721
>             Project: Felix
>          Issue Type: Bug
>          Components: Framework
>    Affects Versions: felix-1.0.4
>            Reporter: Don Brown
>
> We see this NPE occasionally, probably 10% of the time on application startup:
>      [java] java.lang.NullPointerException
>      [java]     at 
> org.apache.felix.framework.util.ldap.Parser$AndOperator.toStringInfix(Parser.java:601)
>      [java]     at 
> org.apache.felix.framework.util.ldap.Evaluator.toStringInfix(Evaluator.java:184)
>      [java]     at 
> org.apache.felix.framework.FilterImpl.toString(FilterImpl.java:242)
>      [java]     at java.lang.String.valueOf(String.java:2615)
>      [java]     at java.lang.StringBuffer.append(StringBuffer.java:220)
>      [java]     at 
> org.springframework.osgi.service.importer.DefaultOsgiServiceDependency.<init>(DefaultOsgiServiceDependency.java:52)
>      [java]     at 
> org.springframework.osgi.extender.internal.dependencies.startup.MandatoryImporterDependencyFactory.getServiceDependencies(MandatoryImporterDependencyFactory.java:69)
>      [java]     at 
> org.springframework.osgi.extender.internal.dependencies.startup.DependencyServiceManager.findServiceDependencies(DependencyServiceManager.java:233)
>      [java]     at 
> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.stageOne(DependencyWaiterApplicationContextExecutor.java:248)
>      [java]     at 
> org.springframework.osgi.extender.internal.dependencies.startup.DependencyWaiterApplicationContextExecutor.refresh(DependencyWaiterApplicationContextExecutor.java:172)
>      [java]     at 
> org.springframework.osgi.context.support.AbstractDelegatedExecutionApplicationContext.refresh(AbstractDelegatedExecutionApplicationContext.java:136)
>      [java]     at 
> org.springframework.osgi.extender.internal.activator.ContextLoaderListener$2.run(ContextLoaderListener.java:746)
>      [java]     at java.lang.Thread.run(Thread.java:613)
> My first guess would be we are constructing a filter improperly in our Spring 
> config, but the fact that it only happens some of the time is strange.  If 
> nothing else, it would be nice if this bit of code was a bit more defensive.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to