You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@felix.apache.org by "Richard S. Hall (JIRA)" <ji...@apache.org> on 2013/03/05 22:20:14 UTC
[jira] [Resolved] (FELIX-3907) NullPointerException in
BundleWiringImpl when m_disposed is true.
[ https://issues.apache.org/jira/browse/FELIX-3907?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Richard S. Hall resolved FELIX-3907.
------------------------------------
Resolution: Fixed
Assignee: Richard S. Hall
Ok, I committed a patch that will allow misbehaving threads to continue to issue class loads on disposed class loaders for existing classes; however, if they try to load a class from it that hasn't already been loaded, they will get a CNFE. Not sure how much help (or if any) this will be, but it is probably the best we can do without a major effort. Please close if satisfied. Thanks.
> NullPointerException in BundleWiringImpl when m_disposed is true.
> -----------------------------------------------------------------
>
> Key: FELIX-3907
> URL: https://issues.apache.org/jira/browse/FELIX-3907
> Project: Felix
> Issue Type: Bug
> Components: Framework
> Affects Versions: framework-4.2.0
> Environment: Windows
> Reporter: Jad Naous
> Assignee: Richard S. Hall
> Fix For: framework-4.2.1
>
>
> NullPointerException caused by lines 1472-1474 of {{org.apache.felix.framework.BundleWiringImpl}} when {{this.m_disposed == true}}. I don't know why {{this.m_disposed}} is true, but I'm guessing it's some sort of race condition. Stack trace follows:
> {noformat}
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer java.lang.NullPointerException: null
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1472) ~[felix.jar:na]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:75) ~[felix.jar:na]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:1923) ~[felix.jar:na]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at java.lang.ClassLoader.loadClass(ClassLoader.java:247) ~[na:1.6.0_37]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at java.lang.Class.getDeclaredFields0(Native Method) ~[na:1.6.0_37]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at java.lang.Class.privateGetDeclaredFields(Class.java:2291) ~[na:1.6.0_37]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at java.lang.Class.getDeclaredField(Class.java:1880) ~[na:1.6.0_37]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at com.nerati.agent.events.RuntimeRecording.getClassId(RuntimeRecording.java:156) ~[agent-main-0.0.5-SNAPSHOT.jar:0.0.5-SNAPSHOT]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at com.nerati.agent.events.RuntimeRecording.writeAsJson(RuntimeRecording.java:118) ~[agent-main-0.0.5-SNAPSHOT.jar:0.0.5-SNAPSHOT]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at com.nerati.agent.client.ControllerClient.processRequest(ControllerClient.java:160) ~[agent-main-0.0.5-SNAPSHOT.jar:0.0.5-SNAPSHOT]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at com.nerati.agent.client.ControllerClient.putData(ControllerClient.java:131) ~[agent-main-0.0.5-SNAPSHOT.jar:0.0.5-SNAPSHOT]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at com.nerati.agent.client.ControllerManager.putData(ControllerManager.java:177) ~[agent-main-0.0.5-SNAPSHOT.jar:0.0.5-SNAPSHOT]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at com.nerati.agent.client.ControllerSendTask.run(ControllerSendTask.java:119) ~[agent-main-0.0.5-SNAPSHOT.jar:0.0.5-SNAPSHOT]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439) [na:1.6.0_37]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) [na:1.6.0_37]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) [na:1.6.0_37]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) [na:1.6.0_37]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:180) [na:1.6.0_37]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:204) [na:1.6.0_37]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [na:1.6.0_37]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [na:1.6.0_37]
> ( Thread-5) [DEBUG] ntegration.NeratiDeployer at java.lang.Thread.run(Thread.java:662) [na:1.6.0_37]
> {noformat}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira