Please create a ticket in JIRA.

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

On Wed, Feb 18, 2015 at 3:21 PM, Stijn Niclaes <[email protected]>
wrote:

> As I understand it, getCacheKey() returning null results in no cache(at
> all), this is what we did before and probably what I will revert back to.
> But it's not really what I want: Ops complained about network traffic(no
> cache means every request fetches one of the basepages) and we got our
> drupal vendor to return the last-modified header, and keep it up-to-date,
> but now it seems wicket cannot get the value of the last-modified header
> because of the implementation in this Connections class.
>
> I wrote a unit-test that does the same as Connections.getLastModified(final
> URL url) and the lastmodified value is always 0 when doInput is set to
> false.
> So I think this cache system with the last-modified header cannot work for
> 'real' url's(remote markup)
>
> unit-test:
>   @Test
>   public void testLastModified() throws IOException {
>     URL url = new URL("http://www….”);
>     URLConnection connection = url.openConnection();
> //    connection.setDoInput(false);
>     System.out.println(new DateTime(connection.getLastModified()));
>   }
>
> point this to any url that returns a last-modified header and
> connection.getLastModified() returns this value.
> With setDoInput set to false, the url can even be non-existent,
> getLastModified returns 0.
>
> Kind regards,
>
> Stijn Niclaes
>
>
> On Wed, Feb 18, 2015 at 8:35 AM, Martin Grigorov <[email protected]>
> wrote:
>
> > Hi,
> >
> > The field is set to false because Wicket doesn't write anything to the
> > connection. It just reads from it.
> >
> > Reading the beginning of your message I thought that your base pages need
> > to implement org.apache.wicket.markup.IMarkupCacheKeyProvider and
> override
> > #getCacheKey() to return null. Try it!
> >
> >
> >
> > Martin Grigorov
> > Wicket Training and Consulting
> > https://twitter.com/mtgrigorov
> >
> > On Tue, Feb 17, 2015 at 10:28 AM, Stijn Niclaes <[email protected]
> >
> > wrote:
> >
> > > Hi all,
> > >
> > > We have 4 basePages for which the markup resides in a drupal
> > site(created a
> > > ResourceStreamLocator extension for that). All our other pages extend
> > from
> > > these.
> > >
> > > Now the problem is that these basePages get cached and the cache does
> not
> > > get invalidated.
> > > We get the up-to-date last-modified header from drupal but wicket seems
> > to
> > > simply ignore it.
> > >
> > > Issue lies in Connections class: the static method getLastModified(URL
> > url)
> > > creates a URLConnection, but then calls setDoInput(false) before
> calling
> > > connection.getLastModified().
> > > URLConnection.getLastModified always returns 0 when doInput is set to
> > > false, no connection is even set up when doInput is false.
> > >
> > > Why is this doInput field set to false?
> > >
> > > We use Wicket 1.5.12.
> > >
> > > Kind regards,
> > >
> > > Stijn Niclaes
> > >
> >
>

Reply via email to