google-code-export / wro4j

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

java.lang.NullPointerException in AbstractNodeWithFallbackProcessor.java:62 #715

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. First time calling compile method it fails with NPE
2. It seems like second time we invoke the compilation it succeeds

What is the expected output? What do you see instead?
Not throwing the NullPointerException on the first call

What version of the product are you using? On what operating system?
wro4j 1.6.3
nodejs v0.10.5
lessc 1.4.0-b3 (LESS Compiler) [JavaScript]

Please provide any additional information below.

Caused by: java.lang.RuntimeException: java.lang.NullPointerException
        at com.atypon.pagebuilder.core.internal.services.impl.LessCompilerWro4jImpl.compile(LessCompilerWro4jImpl.java:24)
        at com.atypon.pagebuilder.core.internal.services.impl.CssServiceImpl.generateCss(CssServiceImpl.java:102)
        at com.atypon.pagebuilder.internal.services.impl.controller.EditorController.renderPage(EditorController.java:92)
        at sun.reflect.GeneratedMethodAccessor586.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:601)
        at org.springframework.web.method.support.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:219)
        at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:132)
        at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:104)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandleMethod(RequestMappingHandlerAdapter.java:746)
        at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:687)
        at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:80)
        at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:925)
        at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:856)
        at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:915)
        ... 46 more
Caused by: java.lang.NullPointerException
        at ro.isdc.wro.extensions.processor.js.AbstractNodeWithFallbackProcessor.getProcessor(AbstractNodeWithFallbackProcessor.java:62)
        at ro.isdc.wro.extensions.processor.js.AbstractNodeWithFallbackProcessor.process(AbstractNodeWithFallbackProcessor.java:55)
        at ro.isdc.wro.extensions.processor.js.AbstractNodeWithFallbackProcessor.process(AbstractNodeWithFallbackProcessor.java:73)
        at com.atypon.pagebuilder.core.internal.services.impl.LessCompilerWro4jImpl.compile(LessCompilerWro4jImpl.java:22)
        ... 63 more

Original issue reported on code.google.com by li...@atypon.com on 10 May 2013 at 5:57

GoogleCodeExporter commented 9 years ago
Less to CSS is now more coupled with the rest of the library, and requires some 
setup and initialization.

We created a wrapper to properly initialize it

public class LessCompilerWro4jImpl implements LessCompiler, InitializingBean {

    private LessCssProcessor processor;

    @Override
    public String compile(String lessCode) {
        StringWriter css = new StringWriter();
        try {
            processor.process(new StringReader(lessCode), css);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }
        return css.toString();
    }

    @Override
    public void afterPropertiesSet() throws Exception {
        Context.set(Context.standaloneContext());
        try {
            StandaloneWroManagerFactory wroManagerFactory = new StandaloneWroManagerFactory();
            Injector injector = InjectorBuilder.create(wroManagerFactory).build();
            processor = new LessCssProcessor();
            injector.inject(processor);
        } finally {
            Context.unset();
        }
    }
}

Let us know if NPE problem is fixed or there is a better way around it.

Original comment by li...@atypon.com on 10 May 2013 at 11:25

GoogleCodeExporter commented 9 years ago
The workaround is to use either NodeLessCssProcessor or RhinoLessCssProcessor 
explicitely.

Original comment by alex.obj...@gmail.com on 11 May 2013 at 5:41

GoogleCodeExporter commented 9 years ago
Fixed in branch 1.7.x

Original comment by alex.obj...@gmail.com on 31 Jan 2014 at 3:00

GoogleCodeExporter commented 9 years ago
Issue 852 has been merged into this issue.

Original comment by alex.obj...@gmail.com on 24 Feb 2014 at 10:22

GoogleCodeExporter commented 9 years ago
Issue 852 has been merged into this issue.

Original comment by alex.obj...@gmail.com on 24 Feb 2014 at 10:23