wicket-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Tobias Soloschenko <tobiassolosche...@googlemail.com>
Subject Re: Issue using Wicket Bootstap Less
Date Wed, 05 Oct 2016 06:18:29 GMT
Hi,

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

kind regards

Tobias

> Am 05.10.2016 um 07:17 schrieb Erik Strid <strid.erik@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


Mime
View raw message