Thank you, I didn't have the time to create the issue. It's not related to the final, it's an unfortunate the first problem occurred on a final class and I didn't pay attention when I wrote the example. I happens on a plain public class and I'm sure the integration test would fail with this configuration.
On 25 Feb 2013, at 13:02, Carsten Ziegeler wrote: > I've created and fixed FELIX-3917 for the NPE, however if this problem > is related to the class being final (as suspected by Felix) please > create an issue for this. > > Thanks > Carsten > > 2013/2/24 Felix Meschberger <fmesc...@adobe.com>: >> Hi, >> >> (1) The NPE is certainly not good. The plugin should just report the missing >> methods if they are not generated. May I ask you to report an issue ? Thanks. >> >> (2) The first case might be caused by the plugin not generating the methods >> because of the class being final. Could you try not declaring the class >> final ? If that works, I would assume the plugin should properly complain >> and fail the build due to missing methods. >> >> Regards >> Felix >> >> Am 24.02.2013 um 15:23 schrieb László Hordós: >> >>> Hi, >>> >>> I just updated to maven-scr-plugin:1.10.0 and >>> org.apache.felix.scr.annotations:1.8.0 and I have this component: >>> >>> @Component(name = "org.example.component", immediate = true, policy = >>> ConfigurationPolicy.IGNORE) >>> public final class ContextRegistrator { >>> >>> @Reference >>> HttpService httpService; >>> >>> } >>> >>> I didn't have the bind/unbind method but the plugin generated the names and >>> put them into the Descriptor. The build was success but then it didn't work >>> because SCR didn't find the non existing methods so I added the >>> generateAccessors property to the plugin: >>> >>> <plugin> >>> <groupId>org.apache.felix</groupId> >>> <artifactId>maven-scr-plugin</artifactId> >>> <version>1.10.0</version> >>> <configuration> >>> <generateAccessors>false</generateAccessors> >>> </configuration> >>> </plugin> >>> >>> When I build the project now it fails with this exception. >>> >>> Execution generate-scr-scrdescriptor of goal >>> org.apache.felix:maven-scr-plugin:1.10.0:scr failed. NullPointerException >>> -> [Help 1] >>> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute >>> goal org.apache.felix:maven-scr-plugin:1.10.0:scr >>> (generate-scr-scrdescriptor) on project openidm-httpcontext: Execution >>> generate-scr-scrdescriptor of goal >>> org.apache.felix:maven-scr-plugin:1.10.0:scr failed. >>> at >>> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:225) >>> at >>> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) >>> at >>> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) >>> at >>> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) >>> at >>> org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) >>> at >>> org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) >>> at >>> org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) >>> at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320) >>> at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) >>> at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) >>> at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) >>> at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) >>> 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:597) >>> at >>> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) >>> at >>> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) >>> at >>> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) >>> at >>> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) >>> Caused by: org.apache.maven.plugin.PluginExecutionException: Execution >>> generate-scr-scrdescriptor of goal >>> org.apache.felix:maven-scr-plugin:1.10.0:scr failed. >>> at >>> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:110) >>> at >>> org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) >>> ... 19 more >>> Caused by: java.lang.NullPointerException >>> at >>> org.apache.felix.scrplugin.helper.Validator.validateMethod(Validator.java:523) >>> at >>> org.apache.felix.scrplugin.helper.Validator.validateReference(Validator.java:465) >>> at >>> org.apache.felix.scrplugin.helper.Validator.validate(Validator.java:189) >>> at >>> org.apache.felix.scrplugin.SCRDescriptorGenerator.execute(SCRDescriptorGenerator.java:214) >>> at >>> org.apache.felix.scrplugin.mojo.SCRDescriptorMojo.execute(SCRDescriptorMojo.java:248) >>> at >>> org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) >>> ... 20 more >>> >>> >>> If I add these methods then it works. >>> >>> private void bindWebContainer(WebContainer service) { >>> httpService = service; >>> } >>> >>> private void unbindWebContainer(WebContainer service) { >>> httpService = null; >>> } >>> >>> If I make a typo mistake in the name of one of these two methods I get NPE >>> again. If I remove the generateAccessors property and the new methods the >>> plugin "works" again and generate broken Descriptor. It checks when It >>> shouldn't and It does not check when it should. >>> >>> I see there is an integration test >>> src/it/basic-build-it/src/main/java/org/apache/felix/scr/SimpleDSComponent.java >>> but it does not validates the generated Descriptor. >>> >>> Regards, >>> Laszlo >>> >> >> >> -- >> Felix Meschberger | Principal Scientist | Adobe >> >> >> >> >> >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@felix.apache.org >> For additional commands, e-mail: users-h...@felix.apache.org >> > > > > -- > Carsten Ziegeler > cziege...@apache.org > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@felix.apache.org > For additional commands, e-mail: users-h...@felix.apache.org > --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@felix.apache.org For additional commands, e-mail: users-h...@felix.apache.org