google-code-export / wro4j

Automatically exported from code.google.com/p/wro4j
1 stars 1 forks source link

Using 'parallelProcessing' in Maven plugin produces intermittent NullPointerException during build process #830

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Setting 'parallelProcessing' to 'true'
2. Run the plugin as part of a normal build process - NullPointerException 
occurs every 4 or 5 builds

What is the expected output? What do you see instead?

Expected output is fully processed CSS & JS files

Instead I see the following error in the logs:
[INFO] [ERROR] Exception occured while processing: 
ro.isdc.wro.WroRuntimeException, class: ro.isdc.wro.WroRuntimeException,caused 
by: java.lang.NullPointerException
[INFO] ro.isdc.wro.WroRuntimeException
[INFO]  at ro.isdc.wro.WroRuntimeException.wrap(WroRuntimeException.java:69)
[INFO]  at ro.isdc.wro.WroRuntimeException.wrap(WroRuntimeException.java:54)
[INFO]  at 
ro.isdc.wro.maven.plugin.AbstractWro4jMojo$1.onException(AbstractWro4jMojo.java:
413)
[INFO]  at 
ro.isdc.wro.util.concurrent.TaskExecutor.doConsumeResult(TaskExecutor.java:168)
[INFO]  at 
ro.isdc.wro.util.concurrent.TaskExecutor.submit(TaskExecutor.java:104)
[INFO]  at ro.isdc.wro.maven.plugin.Wro4jMojo.doExecute(Wro4jMojo.java:153)
[INFO]  at 
ro.isdc.wro.maven.plugin.AbstractWro4jMojo.execute(AbstractWro4jMojo.java:167)
[INFO]  at 
org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPlugin
Manager.java:101)
[INFO]  at 
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
[INFO]  at 
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
[INFO]  at 
org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
[INFO]  at 
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(Lifecycl
eModuleBuilder.java:84)
[INFO]  at 
org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(Lifecycl
eModuleBuilder.java:59)
[INFO]  at 
org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(Lifecyc
leStarter.java:183)
[INFO]  at 
org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.ja
va:161)
[INFO]  at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:320)
[INFO]  at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
[INFO]  at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
[INFO]  at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
[INFO]  at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
[INFO]  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
[INFO]  at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
[INFO]  at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.jav
a:43)
[INFO]  at java.lang.reflect.Method.invoke(Method.java:601)
[INFO]  at 
org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:2
90)
[INFO]  at 
org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
[INFO]  at 
org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java
:409)
[INFO]  at 
org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
[INFO]  at org.codehaus.classworlds.Launcher.main(Launcher.java:47)
[INFO] Caused by: java.lang.NullPointerException
[INFO]  at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
[INFO]  at 
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorI
mpl.java:57)
[INFO]  at 
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorA
ccessorImpl.java:45)
[INFO]  at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
[INFO]  at 
java.util.concurrent.ForkJoinTask.getThrowableException(ForkJoinTask.java:536)
[INFO]  at java.util.concurrent.ForkJoinTask.get(ForkJoinTask.java:941)
[INFO]  at 
ro.isdc.wro.util.concurrent.TaskExecutor.doConsumeResult(TaskExecutor.java:158)
[INFO]  ... 25 more
[INFO] Caused by: java.lang.NullPointerException
[INFO]  at 
ro.isdc.wro.model.resource.support.naming.DefaultHashEncoderNamingStrategy.renam
e(DefaultHashEncoderNamingStrategy.java:50)
[INFO]  at 
ro.isdc.wro.model.resource.support.naming.ConfigurableNamingStrategy.rename(Conf
igurableNamingStrategy.java:29)
[INFO]  at ro.isdc.wro.maven.plugin.Wro4jMojo.rename(Wro4jMojo.java:198)
[INFO]  at ro.isdc.wro.maven.plugin.Wro4jMojo.processGroup(Wro4jMojo.java:269)
[INFO]  at ro.isdc.wro.maven.plugin.Wro4jMojo.access$000(Wro4jMojo.java:46)
[INFO]  at ro.isdc.wro.maven.plugin.Wro4jMojo$1.call(Wro4jMojo.java:143)
[INFO]  at ro.isdc.wro.maven.plugin.Wro4jMojo$1.call(Wro4jMojo.java:140)
[INFO]  at 
ro.isdc.wro.config.support.ContextPropagatingCallable.call(ContextPropagatingCal
lable.java:58)
[INFO]  at 
ro.isdc.wro.util.concurrent.TaskExecutor$1.call(TaskExecutor.java:124)
[INFO]  at 
java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1288)
[INFO]  at java.util.concurrent.ForkJoinTask.doInvoke(ForkJoinTask.java:377)
[INFO]  at java.util.concurrent.ForkJoinTask.invoke(ForkJoinTask.java:654)
[INFO]  at 
java.util.concurrent.ForkJoinTask$AdaptedCallable.run(ForkJoinTask.java:1298)
[INFO]  at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
[INFO]  at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
[INFO]  at java.util.concurrent.FutureTask.run(FutureTask.java:166)
[INFO]  at 
java.util.concurrent.ForkJoinTask$AdaptedRunnable.exec(ForkJoinTask.java:1265)
[INFO]  at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:334)
[INFO]  at 
java.util.concurrent.ForkJoinWorkerThread.execTask(ForkJoinWorkerThread.java:604
)
[INFO]  at java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:784)
[INFO]  at java.util.concurrent.ForkJoinPool.work(ForkJoinPool.java:646)
[INFO]  at 
java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:398)

What version of the product are you using? On what operating system?
Using wro4j 1.7.2 - occurs on both Windows (7) & Linux (RHEL 5)

Please provide any additional information below.

wro.properties:
debug=true
encoding=UTF-8
preProcessors=uglifyJs,semicolonAppender
postProcessors=rubySassCss,yuiCssMin
namingStrategy=hashEncoder

Maven plugin configuration:
<configuration>
   <wroManagerFactory>ro.isdc.wro.maven.plugin.manager.factory.ConfigurableWroManagerFactory</wroManagerFactory>
   <extraConfigFile>${basedir}/src/main/resources/wro.properties</extraConfigFile>
   <groupNameMappingFile>${project.build.directory}/classes/wromapping.properties</groupNameMappingFile>
   <destinationFolder>${project.build.directory}/classes/META-INF/resources/wro/</destinationFolder>
   <parallelProcessing>true</parallelProcessing>
</configuration>

wro.xml defines 9 CSS resources & 3 JS resources to build

Setting parallelProcessing to false fixes the problem

Original issue reported on code.google.com by and...@gravytrain.co.uk on 10 Jan 2014 at 9:53

GoogleCodeExporter commented 9 years ago
Thanks for reporting this issue. 
Don't forget that parallelProcessing is considered experimental feature and is 
not recommended to use, unless you are sure it doesn't have any issues in your 
environment. 

Original comment by alex.obj...@gmail.com on 10 Jan 2014 at 10:07

GoogleCodeExporter commented 9 years ago
Also, if you could provide a quick start example which simplifies the issue 
reproduction, it would be greatly appreciated.

Original comment by alex.obj...@gmail.com on 10 Jan 2014 at 10:09

GoogleCodeExporter commented 9 years ago

Original comment by alex.obj...@gmail.com on 14 Jan 2014 at 10:11

GoogleCodeExporter commented 9 years ago
Fixed in branch 1.7.x

Original comment by alex.obj...@gmail.com on 3 Feb 2014 at 8:59