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

Reply via email to