You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Erik Strid <st...@gmail.com> on 2016/10/05 05:17:53 UTC

Re: Issue using Wicket Bootstap Less

Hi Martin,

Thank you for the fast release!

Unfortunately did we find another issue in the LessCacheManager before we
closed this issue on our side, that is related to this issue width the
importedSources.
I have created another pull request, see
https://github.com/l0rdn1kk0n/wicket-bootstrap/pull/638.

Regards
Erik Strid

On Wed, Sep 28, 2016 at 10:06 AM, Martin Grigorov <mg...@apache.org>
wrote:

> Done!
> 0.9.19 and 0.10.9 are on their way to Maven Central!
> Enjoy!
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Wed, Sep 28, 2016 at 9:46 AM, Martin Grigorov <mg...@apache.org>
> wrote:
>
> > Releases are cheap!
> > I'll do it today!
> >
> > Martin Grigorov
> > Wicket Training and Consulting
> > https://twitter.com/mtgrigorov
> >
> > On Wed, Sep 28, 2016 at 9:40 AM, Erik Strid <st...@gmail.com>
> wrote:
> >
> >> 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 <mg...@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 <st...@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 <
> >> mgrigorov@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.erik@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 <
> >> > mgrigorov@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.erik@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.
> getLastModifiedT
> >> ime(
> >> > > > > > > LessCacheManager.java:145)
> >> > > > > > > ~[wicket-bootstrap-less-0.9.16.jar:0.9.16]
> >> > > > > > > at
> >> > > > > > > de.agilecoders.wicket.less.LessResourceStream.
> lastModifiedTi
> >> me(
> >> > > > > > > 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
> >> > > > > > >
> >> > > > > >
> >> > > > >
> >> > > >
> >> > >
> >> >
> >>
> >
> >
>

Re: Issue using Wicket Bootstap Less

Posted by Erik Strid <st...@gmail.com>.
Hi Martin,

Thank you for your fast responses and the release!

Kind regards
Erik Strid

On Sat, Oct 8, 2016 at 11:38 PM, Martin Grigorov <mg...@apache.org>
wrote:

> Done!
> 0.9.20 and 0.10.10 will be soon at Maven Central.
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Thu, Oct 6, 2016 at 9:34 AM, Martin Grigorov <mg...@apache.org>
> wrote:
>
> > I want to do some more changes before the next release.
> > Ping me again if you need it sooner.
> >
> > Martin Grigorov
> > Wicket Training and Consulting
> > https://twitter.com/mtgrigorov
> >
> > On Thu, Oct 6, 2016 at 8:06 AM, Erik Strid <st...@gmail.com> wrote:
> >
> >> Hi,
> >>
> >> We have tested the new 0.9.20-SNAPSHOT and it seems to be working as
> >> expected.
> >> Can we make new release request?
> >>
> >> Regards
> >> Erik Strid
> >>
> >> On Wed, Oct 5, 2016 at 8:18 AM, Tobias Soloschenko <
> >> tobiassoloschenko@googlemail.com> wrote:
> >>
> >> > Hi,
> >> >
> >> > just wanted to thank you for your contributions! :-)
> >> >
> >> > kind regards
> >> >
> >> > Tobias
> >> >
> >> > > Am 05.10.2016 um 07:17 schrieb Erik Strid <st...@gmail.com>:
> >> > >
> >> > > Hi Martin,
> >> > >
> >> > > Thank you for the fast release!
> >> > >
> >> > > Unfortunately did we find another issue in the LessCacheManager
> >> before we
> >> > > closed this issue on our side, that is related to this issue width
> the
> >> > > importedSources.
> >> > > I have created another pull request, see
> >> > > https://github.com/l0rdn1kk0n/wicket-bootstrap/pull/638.
> >> > >
> >> > > Regards
> >> > > Erik Strid
> >> > >
> >> > > On Wed, Sep 28, 2016 at 10:06 AM, Martin Grigorov <
> >> mgrigorov@apache.org>
> >> > > wrote:
> >> > >
> >> > >> Done!
> >> > >> 0.9.19 and 0.10.9 are on their way to Maven Central!
> >> > >> Enjoy!
> >> > >>
> >> > >> Martin Grigorov
> >> > >> Wicket Training and Consulting
> >> > >> https://twitter.com/mtgrigorov
> >> > >>
> >> > >> On Wed, Sep 28, 2016 at 9:46 AM, Martin Grigorov <
> >> mgrigorov@apache.org>
> >> > >> wrote:
> >> > >>
> >> > >>> Releases are cheap!
> >> > >>> I'll do it today!
> >> > >>>
> >> > >>> Martin Grigorov
> >> > >>> Wicket Training and Consulting
> >> > >>> https://twitter.com/mtgrigorov
> >> > >>>
> >> > >>> On Wed, Sep 28, 2016 at 9:40 AM, Erik Strid <strid.erik@gmail.com
> >
> >> > >> wrote:
> >> > >>>
> >> > >>>> 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 <
> >> > mgrigorov@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.erik@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 <
> >> > >>>> mgrigorov@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.erik@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 <
> >> > >>>>> mgrigorov@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.erik@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.
> >> > >> getLastModifiedT
> >> > >>>> ime(
> >> > >>>>>>>>>> LessCacheManager.java:145)
> >> > >>>>>>>>>> ~[wicket-bootstrap-less-0.9.16.jar:0.9.16]
> >> > >>>>>>>>>> at
> >> > >>>>>>>>>> de.agilecoders.wicket.less.LessResourceStream.
> >> > >> lastModifiedTi
> >> > >>>> me(
> >> > >>>>>>>>>> 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
> >> > >>>>>>>>>>
> >> > >>>>>>>>>
> >> > >>>>>>>>
> >> > >>>>>>>
> >> > >>>>>>
> >> > >>>>>
> >> > >>>>
> >> > >>>
> >> > >>>
> >> > >>
> >> >
> >> > ---------------------------------------------------------------------
> >> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >> > For additional commands, e-mail: users-help@wicket.apache.org
> >> >
> >> >
> >>
> >
> >
>

Re: Issue using Wicket Bootstap Less

Posted by Martin Grigorov <mg...@apache.org>.
Done!
0.9.20 and 0.10.10 will be soon at Maven Central.

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Thu, Oct 6, 2016 at 9:34 AM, Martin Grigorov <mg...@apache.org>
wrote:

> I want to do some more changes before the next release.
> Ping me again if you need it sooner.
>
> Martin Grigorov
> Wicket Training and Consulting
> https://twitter.com/mtgrigorov
>
> On Thu, Oct 6, 2016 at 8:06 AM, Erik Strid <st...@gmail.com> wrote:
>
>> Hi,
>>
>> We have tested the new 0.9.20-SNAPSHOT and it seems to be working as
>> expected.
>> Can we make new release request?
>>
>> Regards
>> Erik Strid
>>
>> On Wed, Oct 5, 2016 at 8:18 AM, Tobias Soloschenko <
>> tobiassoloschenko@googlemail.com> wrote:
>>
>> > Hi,
>> >
>> > just wanted to thank you for your contributions! :-)
>> >
>> > kind regards
>> >
>> > Tobias
>> >
>> > > Am 05.10.2016 um 07:17 schrieb Erik Strid <st...@gmail.com>:
>> > >
>> > > Hi Martin,
>> > >
>> > > Thank you for the fast release!
>> > >
>> > > Unfortunately did we find another issue in the LessCacheManager
>> before we
>> > > closed this issue on our side, that is related to this issue width the
>> > > importedSources.
>> > > I have created another pull request, see
>> > > https://github.com/l0rdn1kk0n/wicket-bootstrap/pull/638.
>> > >
>> > > Regards
>> > > Erik Strid
>> > >
>> > > On Wed, Sep 28, 2016 at 10:06 AM, Martin Grigorov <
>> mgrigorov@apache.org>
>> > > wrote:
>> > >
>> > >> Done!
>> > >> 0.9.19 and 0.10.9 are on their way to Maven Central!
>> > >> Enjoy!
>> > >>
>> > >> Martin Grigorov
>> > >> Wicket Training and Consulting
>> > >> https://twitter.com/mtgrigorov
>> > >>
>> > >> On Wed, Sep 28, 2016 at 9:46 AM, Martin Grigorov <
>> mgrigorov@apache.org>
>> > >> wrote:
>> > >>
>> > >>> Releases are cheap!
>> > >>> I'll do it today!
>> > >>>
>> > >>> Martin Grigorov
>> > >>> Wicket Training and Consulting
>> > >>> https://twitter.com/mtgrigorov
>> > >>>
>> > >>> On Wed, Sep 28, 2016 at 9:40 AM, Erik Strid <st...@gmail.com>
>> > >> wrote:
>> > >>>
>> > >>>> 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 <
>> > mgrigorov@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.erik@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 <
>> > >>>> mgrigorov@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.erik@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 <
>> > >>>>> mgrigorov@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.erik@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.
>> > >> getLastModifiedT
>> > >>>> ime(
>> > >>>>>>>>>> LessCacheManager.java:145)
>> > >>>>>>>>>> ~[wicket-bootstrap-less-0.9.16.jar:0.9.16]
>> > >>>>>>>>>> at
>> > >>>>>>>>>> de.agilecoders.wicket.less.LessResourceStream.
>> > >> lastModifiedTi
>> > >>>> me(
>> > >>>>>>>>>> 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
>> > >>>>>>>>>>
>> > >>>>>>>>>
>> > >>>>>>>>
>> > >>>>>>>
>> > >>>>>>
>> > >>>>>
>> > >>>>
>> > >>>
>> > >>>
>> > >>
>> >
>> > ---------------------------------------------------------------------
>> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> > For additional commands, e-mail: users-help@wicket.apache.org
>> >
>> >
>>
>
>

Re: Issue using Wicket Bootstap Less

Posted by Martin Grigorov <mg...@apache.org>.
I want to do some more changes before the next release.
Ping me again if you need it sooner.

Martin Grigorov
Wicket Training and Consulting
https://twitter.com/mtgrigorov

On Thu, Oct 6, 2016 at 8:06 AM, Erik Strid <st...@gmail.com> wrote:

> Hi,
>
> We have tested the new 0.9.20-SNAPSHOT and it seems to be working as
> expected.
> Can we make new release request?
>
> Regards
> Erik Strid
>
> On Wed, Oct 5, 2016 at 8:18 AM, Tobias Soloschenko <
> tobiassoloschenko@googlemail.com> wrote:
>
> > Hi,
> >
> > just wanted to thank you for your contributions! :-)
> >
> > kind regards
> >
> > Tobias
> >
> > > Am 05.10.2016 um 07:17 schrieb Erik Strid <st...@gmail.com>:
> > >
> > > Hi Martin,
> > >
> > > Thank you for the fast release!
> > >
> > > Unfortunately did we find another issue in the LessCacheManager before
> we
> > > closed this issue on our side, that is related to this issue width the
> > > importedSources.
> > > I have created another pull request, see
> > > https://github.com/l0rdn1kk0n/wicket-bootstrap/pull/638.
> > >
> > > Regards
> > > Erik Strid
> > >
> > > On Wed, Sep 28, 2016 at 10:06 AM, Martin Grigorov <
> mgrigorov@apache.org>
> > > wrote:
> > >
> > >> Done!
> > >> 0.9.19 and 0.10.9 are on their way to Maven Central!
> > >> Enjoy!
> > >>
> > >> Martin Grigorov
> > >> Wicket Training and Consulting
> > >> https://twitter.com/mtgrigorov
> > >>
> > >> On Wed, Sep 28, 2016 at 9:46 AM, Martin Grigorov <
> mgrigorov@apache.org>
> > >> wrote:
> > >>
> > >>> Releases are cheap!
> > >>> I'll do it today!
> > >>>
> > >>> Martin Grigorov
> > >>> Wicket Training and Consulting
> > >>> https://twitter.com/mtgrigorov
> > >>>
> > >>> On Wed, Sep 28, 2016 at 9:40 AM, Erik Strid <st...@gmail.com>
> > >> wrote:
> > >>>
> > >>>> 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 <
> > mgrigorov@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 <st...@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 <
> > >>>> mgrigorov@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.erik@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 <
> > >>>>> mgrigorov@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.erik@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.
> > >> getLastModifiedT
> > >>>> ime(
> > >>>>>>>>>> LessCacheManager.java:145)
> > >>>>>>>>>> ~[wicket-bootstrap-less-0.9.16.jar:0.9.16]
> > >>>>>>>>>> at
> > >>>>>>>>>> de.agilecoders.wicket.less.LessResourceStream.
> > >> lastModifiedTi
> > >>>> me(
> > >>>>>>>>>> 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
> > >>>>>>>>>>
> > >>>>>>>>>
> > >>>>>>>>
> > >>>>>>>
> > >>>>>>
> > >>>>>
> > >>>>
> > >>>
> > >>>
> > >>
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > For additional commands, e-mail: users-help@wicket.apache.org
> >
> >
>

Re: Issue using Wicket Bootstap Less

Posted by Erik Strid <st...@gmail.com>.
Hi,

We have tested the new 0.9.20-SNAPSHOT and it seems to be working as
expected.
Can we make new release request?

Regards
Erik Strid

On Wed, Oct 5, 2016 at 8:18 AM, Tobias Soloschenko <
tobiassoloschenko@googlemail.com> wrote:

> Hi,
>
> just wanted to thank you for your contributions! :-)
>
> kind regards
>
> Tobias
>
> > Am 05.10.2016 um 07:17 schrieb Erik Strid <st...@gmail.com>:
> >
> > Hi Martin,
> >
> > Thank you for the fast release!
> >
> > Unfortunately did we find another issue in the LessCacheManager before we
> > closed this issue on our side, that is related to this issue width the
> > importedSources.
> > I have created another pull request, see
> > https://github.com/l0rdn1kk0n/wicket-bootstrap/pull/638.
> >
> > Regards
> > Erik Strid
> >
> > On Wed, Sep 28, 2016 at 10:06 AM, Martin Grigorov <mg...@apache.org>
> > wrote:
> >
> >> Done!
> >> 0.9.19 and 0.10.9 are on their way to Maven Central!
> >> Enjoy!
> >>
> >> Martin Grigorov
> >> Wicket Training and Consulting
> >> https://twitter.com/mtgrigorov
> >>
> >> On Wed, Sep 28, 2016 at 9:46 AM, Martin Grigorov <mg...@apache.org>
> >> wrote:
> >>
> >>> Releases are cheap!
> >>> I'll do it today!
> >>>
> >>> Martin Grigorov
> >>> Wicket Training and Consulting
> >>> https://twitter.com/mtgrigorov
> >>>
> >>> On Wed, Sep 28, 2016 at 9:40 AM, Erik Strid <st...@gmail.com>
> >> wrote:
> >>>
> >>>> 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 <
> mgrigorov@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 <st...@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 <
> >>>> mgrigorov@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.erik@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 <
> >>>>> mgrigorov@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.erik@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.
> >> getLastModifiedT
> >>>> ime(
> >>>>>>>>>> LessCacheManager.java:145)
> >>>>>>>>>> ~[wicket-bootstrap-less-0.9.16.jar:0.9.16]
> >>>>>>>>>> at
> >>>>>>>>>> de.agilecoders.wicket.less.LessResourceStream.
> >> lastModifiedTi
> >>>> me(
> >>>>>>>>>> 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
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>
> >>>>>>
> >>>>>
> >>>>
> >>>
> >>>
> >>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
>
>

Re: Issue using Wicket Bootstap Less

Posted by Tobias Soloschenko <to...@googlemail.com>.
Hi,

just wanted to thank you for your contributions! :-)

kind regards

Tobias

> Am 05.10.2016 um 07:17 schrieb Erik Strid <st...@gmail.com>:
> 
> Hi Martin,
> 
> Thank you for the fast release!
> 
> Unfortunately did we find another issue in the LessCacheManager before we
> closed this issue on our side, that is related to this issue width the
> importedSources.
> I have created another pull request, see
> https://github.com/l0rdn1kk0n/wicket-bootstrap/pull/638.
> 
> Regards
> Erik Strid
> 
> On Wed, Sep 28, 2016 at 10:06 AM, Martin Grigorov <mg...@apache.org>
> wrote:
> 
>> Done!
>> 0.9.19 and 0.10.9 are on their way to Maven Central!
>> Enjoy!
>> 
>> Martin Grigorov
>> Wicket Training and Consulting
>> https://twitter.com/mtgrigorov
>> 
>> On Wed, Sep 28, 2016 at 9:46 AM, Martin Grigorov <mg...@apache.org>
>> wrote:
>> 
>>> Releases are cheap!
>>> I'll do it today!
>>> 
>>> Martin Grigorov
>>> Wicket Training and Consulting
>>> https://twitter.com/mtgrigorov
>>> 
>>> On Wed, Sep 28, 2016 at 9:40 AM, Erik Strid <st...@gmail.com>
>> wrote:
>>> 
>>>> 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 <mg...@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 <st...@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 <
>>>> mgrigorov@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.erik@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 <
>>>>> mgrigorov@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.erik@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.
>> getLastModifiedT
>>>> ime(
>>>>>>>>>> LessCacheManager.java:145)
>>>>>>>>>> ~[wicket-bootstrap-less-0.9.16.jar:0.9.16]
>>>>>>>>>> at
>>>>>>>>>> de.agilecoders.wicket.less.LessResourceStream.
>> lastModifiedTi
>>>> me(
>>>>>>>>>> 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
>>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>>> 
>> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org