Hi Martin,

Thank you for your fast response to the pull request!

How often is the wicket-boostrap project released?

We have tested the snapshot in our test environment and we think the
solution works as intended. We would like to have a correct release before
releasing the whole solution to the real world. This will happen within 3-4
weeks. Is it possible to get a release in that time frame?

Regards
Erik

On Thu, Sep 22, 2016 at 9:26 PM, Martin Grigorov <mgrigo...@apache.org>
wrote:

> Merged!
> Thanks a lot!
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Thu, Sep 22, 2016 at 1:11 PM, Erik Strid <strid.e...@gmail.com> wrote:
>
> > Hi Martin,
> >
> > I have created a pull request, see
> > https://github.com/l0rdn1kk0n/wicket-bootstrap/pull/636
> >
> > Regards
> > Erik
> >
> > On Tue, Sep 20, 2016 at 9:08 PM, Martin Grigorov <mgrigo...@apache.org>
> > wrote:
> >
> > > Hi Erik,
> > >
> > > Many thanks for investigating this!
> > >
> > > Please create a Pull Request!
> > > It seems you already know how to fix it!
> > > Thank you!
> > >
> > > Martin Grigorov
> > > Wicket Training and Consulting
> > > https://twitter.com/mtgrigorov
> > >
> > > On Tue, Sep 20, 2016 at 2:16 PM, Erik Strid <strid.e...@gmail.com>
> > wrote:
> > >
> > > > Hi Martin,
> > > >
> > > > I have finally found some time to investigate this issue further.
> > > >
> > > > It seems that clearing the cache only will clear the variable
> > > contentCache
> > > > and not both the contentCache and urlSourceCache variables in
> > > > LessCacheManager. A cleared cache will trigger a recompile in
> > > > LessCacheManager.getCss(URLSource) on a cached URLSource, in this
> case
> > > > will
> > > > the compiler add the imported files to the importedSources list,
> > returned
> > > > by AbstractHierarchicalSource.getImportedSources(), once more. And
> the
> > > > importedSources list will grow with imported files after each call to
> > > > clearCache.
> > > > The NPE that we get is a result of the shared URLSource and a race
> > > > condition in AbstractHierarchicalSource.
> addImportedSource(LessSource)
> > > > (importedSources isn't thread safe).
> > > >
> > > > Furthermore I think there is an issue with the
> > > > LessCacheManager.getCss(URLSource). For the first file that is
> > compiled
> > > > will the list of imported sources for lessSource be empty. The
> > > > lastModifiedTime will then only contain the timestamp for the file
> and
> > > not
> > > > the last modified time of the file itself or its imports, so the
> > > > lastModifiedTime will be incorrect when adding the compiled source to
> > the
> > > > timeToContentMap the first time.
> > > >
> > > > You should be able to see these two issues in this commit
> > > > https://github.com/strido/wicket-bootstrap/commit/
> > > > 2be0d8d4294162bd103e63c74198d90457e6069e
> > > >
> > > > Should I report this to your issue tracker (
> > > > https://github.com/l0rdn1kk0n/wicket-bootstrap/issues)?
> > > >
> > > > Regards
> > > > Erik Strid
> > > >
> > > > On Tue, Sep 6, 2016 at 10:49 AM, Martin Grigorov <
> mgrigo...@apache.org
> > >
> > > > wrote:
> > > >
> > > > > Hi,
> > > > >
> > > > > If the list of imported sources contains "null" then you should ask
> > at
> > > > > https://github.com/SomMeri/less4j/issues.
> > > > >
> > > > > What I can do in Wicket-Bootstrap-Less is to add protection against
> > > this
> > > > > NullPointerException by ignoring all "null"s. But this may lead to
> > > broken
> > > > > UI!
> > > > > Please file an issue at
> > > > > https://github.com/l0rdn1kk0n/wicket-bootstrap/issues if you think
> > > this
> > > > > could help.
> > > > >
> > > > > Martin Grigorov
> > > > > Wicket Training and Consulting
> > > > > https://twitter.com/mtgrigorov
> > > > >
> > > > > On Tue, Sep 6, 2016 at 10:39 AM, Erik Strid <strid.e...@gmail.com>
> > > > wrote:
> > > > >
> > > > > > Hi.
> > > > > >
> > > > > > We are using Wicket Bootstap Less in our project and have an
> issue
> > > with
> > > > > the
> > > > > > Less compilation.
> > > > > > From time to time the compilation fails for some of the Less
> files
> > in
> > > > our
> > > > > > project, usually we see this in our Selenium Grid but it have
> > > happened
> > > > > > locally as well.
> > > > > >
> > > > > > When the compilation fails we get this stacktrace:
> > > > > >
> > > > > > java.lang.NullPointerException: null
> > > > > > at
> > > > > > de.agilecoders.wicket.less.LessCacheManager.findLastModified(
> > > > > > LessCacheManager.java:159)
> > > > > > ~[wicket-bootstrap-less-0.9.16.jar:0.9.16]
> > > > > > at
> > > > > > de.agilecoders.wicket.less.LessCacheManager.findLastModified(
> > > > > > LessCacheManager.java:165)
> > > > > > ~[wicket-bootstrap-less-0.9.16.jar:0.9.16]
> > > > > > at
> > > > > > de.agilecoders.wicket.less.LessCacheManager.getLastModifiedTime(
> > > > > > LessCacheManager.java:145)
> > > > > > ~[wicket-bootstrap-less-0.9.16.jar:0.9.16]
> > > > > > at
> > > > > > de.agilecoders.wicket.less.LessResourceStream.lastModifiedTime(
> > > > > > LessResourceStream.java:65)
> > > > > > ~[wicket-bootstrap-less-0.9.16.jar:0.9.16]
> > > > > > at
> > > > > > org.apache.wicket.request.resource.PackageResource.
> > > > newResourceResponse(
> > > > > > PackageResource.java:295)
> > > > > > ~[wicket-core-6.22.0.jar:6.22.0]
> > > > > > at
> > > > > > org.apache.wicket.request.resource.AbstractResource.
> > > > > > respond(AbstractResource.java:498)
> > > > > > ~[wicket-core-6.22.0.jar:6.22.0]
> > > > > > at
> > > > > > org.apache.wicket.request.handler.resource.
> ResourceRequestHandler.
> > > > > respond(
> > > > > > ResourceRequestHandler.java:75)
> > > > > > ~[wicket-core-6.22.0.jar:6.22.0]
> > > > > > at
> > > > > > org.apache.wicket.request.handler.resource.
> > > > > ResourceReferenceRequestHandle
> > > > > > r.respond(ResourceReferenceRequestHandler.java:108)
> > > > > > ~[wicket-core-6.22.0.jar:6.22.0]
> > > > > > at
> > > > > > org.apache.wicket.request.cycle.RequestCycle$
> > > HandlerExecutor.respond(
> > > > > > RequestCycle.java:890)
> > > > > > ~[wicket-core-6.22.0.jar:6.22.0]
> > > > > > at
> > > > > > org.apache.wicket.request.RequestHandlerStack.execute(
> > > > > > RequestHandlerStack.java:64)
> > > > > > ~[wicket-request-6.22.0.jar:6.22.0]
> > > > > > at
> > > > > > org.apache.wicket.request.cycle.RequestCycle.execute(
> > > > > > RequestCycle.java:261)
> > > > > > [wicket-core-6.22.0.jar:6.22.0]
> > > > > > at
> > > > > > org.apache.wicket.request.cycle.RequestCycle.
> > > > > processRequest(RequestCycle.
> > > > > > java:218)
> > > > > > [wicket-core-6.22.0.jar:6.22.0]
> > > > > > at
> > > > > > org.apache.wicket.request.cycle.RequestCycle.
> > > processRequestAndDetach(
> > > > > > RequestCycle.java:289)
> > > > > > [wicket-core-6.22.0.jar:6.22.0]
> > > > > > at
> > > > > > org.apache.wicket.protocol.http.WicketFilter.
> processRequestCycle(
> > > > > > WicketFilter.java:259)
> > > > > > [wicket-core-6.22.0.jar:6.22.0]
> > > > > > at
> > > > > > org.apache.wicket.protocol.http.WicketFilter.
> > > > > processRequest(WicketFilter.
> > > > > > java:201)
> > > > > > [wicket-core-6.22.0.jar:6.22.0]
> > > > > > at
> > > > > > org.apache.wicket.protocol.http.WicketFilter.doFilter(
> > > > > > WicketFilter.java:282)
> > > > > > [wicket-core-6.22.0.jar:6.22.0]
> > > > > > at
> > > > > > org.eclipse.jetty.servlet.ServletHandler$CachedChain.
> > > > > > doFilter(ServletHandler.java:1652)
> > > > > > [jetty-servlet-9.2.15.v20160210.jar:9.2.15.v20160210]
> > > > > > at
> > > > > > org.springframework.security.web.FilterChainProxy$
> > > > > > VirtualFilterChain.doFilter(FilterChainProxy.java:369)
> > > > > > [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
> > > > > > at
> > > > > > org.springframework.security.web.access.intercept.
> > > > > > FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.
> > java:109)
> > > > > > [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
> > > > > > at
> > > > > > org.springframework.security.web.access.intercept.
> > > > > > FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.
> > > java:83)
> > > > > > [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
> > > > > > at
> > > > > > org.springframework.security.web.FilterChainProxy$
> > > > > > VirtualFilterChain.doFilter(FilterChainProxy.java:381)
> > > > > > [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
> > > > > > at
> > > > > > org.springframework.security.web.access.
> > ExceptionTranslationFilter.
> > > > > > doFilter(ExceptionTranslationFilter.java:97)
> > > > > > [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
> > > > > > at
> > > > > > org.springframework.security.web.FilterChainProxy$
> > > > > > VirtualFilterChain.doFilter(FilterChainProxy.java:381)
> > > > > > [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
> > > > > > at
> > > > > > org.springframework.security.web.session.
> SessionManagementFilter.
> > > > > doFilter(
> > > > > > SessionManagementFilter.java:100)
> > > > > > [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
> > > > > > at
> > > > > > org.springframework.security.web.FilterChainProxy$
> > > > > > VirtualFilterChain.doFilter(FilterChainProxy.java:381)
> > > > > > [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
> > > > > > at
> > > > > > org.springframework.security.web.authentication.
> > > > > > AnonymousAuthenticationFilter.doFilter(
> > > AnonymousAuthenticationFilter.
> > > > > > java:78)
> > > > > > [spring-security-web-3.0.7.RELEASE.jar:3.0.7.RELEASE]
> > > > > >
> > > > > > I have been able do see what is happening when we get the problem
> > > > > locally,
> > > > > > it is the importedSources for the file currently compiled that
> > > contains
> > > > > > null.
> > > > > > And from what I have seen (if I'm remembering correctly) it has
> > been
> > > > the
> > > > > > first element in the list that is null and the other items in the
> > > list
> > > > > > contains the correct imports. We are using "classpath!" imports
> for
> > > > > usually
> > > > > > one or two imports.
> > > > > >
> > > > > > I cannot see any point where it is possible to add null to the
> list
> > > of
> > > > > > imported sources from reviewing the code that adds the imports in
> > the
> > > > > Less
> > > > > > files.
> > > > > >
> > > > > > Furthermore we are adding Less a variable using
> > > > > > LessCompilerConfigurationFactory and clear the LessCacheManager
> > upon
> > > > > > changes to this variable, however during the tests in our
> Selenium
> > > Grid
> > > > > > this shouldn't happen.
> > > > > >
> > > > > > My problem is that I'm not able to reproduce the issue.
> > > > > > Have someone encountered this problem before? Or does someone
> have
> > > > hints
> > > > > on
> > > > > > how to proceed with the troubleshooting?
> > > > > >
> > > > > > Regards
> > > > > > Erik Strid
> > > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to