[jbosscache-dev] Method storeEntireState is ambiguous with null parameter

Vladimir Blagojevic vladimir.blagojevic at jboss.com
Tue Aug 29 08:42:31 EDT 2006


We really should.

In the light of our recent conversations it really does not make sense
to keep byte based methods. Cacheloader implementors can easily make a
mistake and disrupt interoperability with other cacheloader
implementations. Another argument for having only 4 stream based methods
is that cacheloader implementors do not have to implement separate
methods for streaming and byte based transfer.

Brian and I talked about this extensively.

Let have another vote on this. 


> -----Original Message-----
> From: Manik Surtani [mailto:manik at jboss.org] 
> Sent: Tuesday, August 29, 2006 8:01 AM
> To: Vladimir Blagojevic
> Cc: jbosscache-dev at lists.jboss.org
> Subject: Re: [jbosscache-dev] Method storeEntireState is 
> ambiguous with null parameter
> 
> Are we not going to pull the byte[] methods from the 
> interface, as per your conversation with Brian?
> --
> Manik Surtani
> 
> Lead, JBoss Cache
> JBoss, a division of Red Hat
> 
> Email: manik at jboss.org
> Telephone: +44 7786 702 706
> MSN: manik at surtani.org
> Yahoo/AIM/Skype: maniksurtani
> 
> 
> On 25 Aug 2006, at 17:25, Vladimir Blagojevic wrote:
> 
> > Hi,
> >
> > As you might be aware Cacheloader 2.0 will add 4 methods 
> for streaming 
> > state transfer:
> >
> > void storeEntireState(InputStream s);
> > void storeState(Fqn subtree,InputStream s); void 
> > loadEntireState(OutputStream s); void loadState(Fqn 
> > subtree,OutputStream s);
> >
> > There is a slight problem will method overloading, namely 
> we have now 
> > two methods:
> >
> > void storeEntireState(byte[] state) throws Exception; void 
> > storeEntireState(InputStream is) throws Exception;
> >
> > which are properly overloaded. However, java compiler will 
> complain if 
> > somebody invokes
> >
> > cacheloader.storeEntireState(null);
> >
> > Workaround is to declare actual parameter explicitly , i.e:
> >
> >
> > byte [] nullstate = null;
> > cacheloader.storeEntireState(nullstate);
> >
> > so that compiler can distinguish which overloaded method to invoke.
> > This is the case with our own BdbjeTest that was invoking 
> > cl.storeEntireState(null);
> >
> > Does anyone have any complaints or concerns? If not, I 
> would proceed 
> > with adding stream based methods to CacheLoader and adding noop 
> > implementation methods to all implementers of CacheLoader interface.
> >
> > _______________________________________________
> > jbosscache-dev mailing list
> > jbosscache-dev at lists.jboss.org
> > https://lists.jboss.org/mailman/listinfo/jbosscache-dev
> 
> 




More information about the jbosscache-dev mailing list