wicket-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Erik Strid <strid.e...@gmail.com>
Subject Re: Issue using Wicket Bootstap Less
Date Wed, 05 Oct 2016 05:17:53 GMT
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
> >> > > > > > >
> >> > > > > >
> >> > > > >
> >> > > >
> >> > >
> >> >
> >>
> >
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message