Hi,
Its a content management application. I created some folders / files and then deleted some files, all from the application and not from the backend. It behaves properly most of the time but sometimes it throws below exception. [StandardWrapperValve.java:257:ERROR] Servlet.service() for servlet WebslingerServlet threw exception java.lang.NullPointerException at org.webslinger.commons.vfs.handlers.cow.COWStateXmlStorageHandler $1.findIfExists(COWStateXmlStorageHandler.java:19) at org.webslinger.commons.vfs.handlers.cow.COWStateXmlStorageHandler $1.findIfExists(COWStateXmlStorageHandler.java:16) at org.webslinger.lang.ConcurrentCache.findIfExists (ConcurrentCache.java:39) at org.webslinger.lang.AbstractCache$ConcurrentDelegate.get (AbstractCache.java:125) at org.webslinger.lang.AbstractCache.get(AbstractCache.java: 287) at org.webslinger.lang.ConcurrentCache.get (ConcurrentCache.java:29) at org.webslinger.commons.vfs.handlers.cow.COWStateXmlStorageHandler.removeDeletedChildren (COWStateXmlStorageHandler.j ava:43) at org.webslinger.commons.vfs.virtual.VirtualFileSystem $VirtualResolution.getChildNames(VirtualFileSystem.java:542) at org.webslinger.commons.vfs.GenerationalFileObject.doListChildren (GenerationalFileObject.java:51) at org.webslinger.commons.vfs.AbstractGenerifiedFileObject.resolveChildren (AbstractGenerifiedFileObject.java:69) at org.webslinger.commons.vfs.AbstractGenerifiedFileObject.getChildren (AbstractGenerifiedFileObject.java:54) at org.webslinger.commons.vfs.GenerationalFileObject.getChildren (GenerationalFileObject.java:46) at org.webslinger.commons.vfs.flat.FlatFileObject.doListChildren (FlatFileObject.java:103) at org.webslinger.commons.vfs.AbstractGenerifiedFileObject.resolveChildren (AbstractGenerifiedFileObject.java:69) at org.webslinger.commons.vfs.AbstractGenerifiedFileObject.getChildren (AbstractGenerifiedFileObject.java:54) at org.webslinger.commons.vfs.virtual.VirtualFileSystem $VirtualResolution.getChildNames(VirtualFileSystem.java:526) at org.webslinger.commons.vfs.GenerationalFileObject.doListChildren (GenerationalFileObject.java:51) I could see that the folder where files have been deleted contain a .cowstate.xml which has following entry for each file deleted from the application <item deleted="true" name="<file name>"/> I saw the code of the COWStateXmlStorageHandler constructor where a new ConcurrentCache object has been created which contains the method findIfExists(). Now from the method's name, I am assuming that it is searching for the file ".cowstate.xml" using getFile() method. But as I cannot debug it I am clueless that why the returned File object is null and hence file.exists() is throwing the above NullPointerException. Is it a OS issue that getFile() is failing? The constructor code of COWStateXmlStorageHandler is here public COWStateXmlStorageHandler() { states = new ConcurrentCache<FileName, COWStateXml> (COWStateXmlStorageHandler.class, "states", null, ConcurrentCache.SOFT) { protected COWStateXml findIfExists(FileName key) throws Exception { FileObject file = getFile(key); return file.exists() ? new COWStateXml(file) : null; } protected COWStateXml createValue(FileName key) throws Exception { return new COWStateXml(getFile(key)); } }; } Please help as these errors are now coming frequently and is causing much trouble. Thanks, Kaushik |
I deleted the .cowstate.xml file and then everything seemed fine. But
again this morning I found the same exception. Is the .cowstate.xml remains somewhere in the cache which Webslinger uses? I restarted the server, to flush the cache, and everything again is fine. Please help as there is no place I can find help on Webslinger other than here. Adam / Ean - Please share some light on the issue. Its kind of urgent. Thanks, Kaushik On 10-Oct-2009, at 12:20 PM, Kaushik Chakraborty wrote: > Hi, > > Its a content management application. I created some folders / files > and then deleted some files, all from the application and not from > the backend. It behaves properly most of the time but sometimes it > throws below exception. > > [StandardWrapperValve.java:257:ERROR] Servlet.service() for servlet > WebslingerServlet threw exception > java.lang.NullPointerException > at > org.webslinger.commons.vfs.handlers.cow.COWStateXmlStorageHandler > $1.findIfExists(COWStateXmlStorageHandler.java:19) > at > org.webslinger.commons.vfs.handlers.cow.COWStateXmlStorageHandler > $1.findIfExists(COWStateXmlStorageHandler.java:16) > at org.webslinger.lang.ConcurrentCache.findIfExists > (ConcurrentCache.java:39) > at org.webslinger.lang.AbstractCache$ConcurrentDelegate.get > (AbstractCache.java:125) > at org.webslinger.lang.AbstractCache.get(AbstractCache.java: > 287) > at org.webslinger.lang.ConcurrentCache.get > (ConcurrentCache.java:29) > at > org.webslinger.commons.vfs.handlers.cow.COWStateXmlStorageHandler.removeDeletedChildren > (COWStateXmlStorageHandler.j > ava:43) > at org.webslinger.commons.vfs.virtual.VirtualFileSystem > $VirtualResolution.getChildNames(VirtualFileSystem.java:542) > at > org.webslinger.commons.vfs.GenerationalFileObject.doListChildren > (GenerationalFileObject.java:51) > at > org.webslinger.commons.vfs.AbstractGenerifiedFileObject.resolveChildren > (AbstractGenerifiedFileObject.java:69) > at > org.webslinger.commons.vfs.AbstractGenerifiedFileObject.getChildren > (AbstractGenerifiedFileObject.java:54) > at > org.webslinger.commons.vfs.GenerationalFileObject.getChildren > (GenerationalFileObject.java:46) > at > org.webslinger.commons.vfs.flat.FlatFileObject.doListChildren > (FlatFileObject.java:103) > at > org.webslinger.commons.vfs.AbstractGenerifiedFileObject.resolveChildren > (AbstractGenerifiedFileObject.java:69) > at > org.webslinger.commons.vfs.AbstractGenerifiedFileObject.getChildren > (AbstractGenerifiedFileObject.java:54) > at org.webslinger.commons.vfs.virtual.VirtualFileSystem > $VirtualResolution.getChildNames(VirtualFileSystem.java:526) > at > org.webslinger.commons.vfs.GenerationalFileObject.doListChildren > (GenerationalFileObject.java:51) > > I could see that the folder where files have been deleted contain > a .cowstate.xml which has following entry for each file deleted from > the application > > <item deleted="true" name="<file name>"/> > > I saw the code of the COWStateXmlStorageHandler constructor where a > new ConcurrentCache object has been created which contains the > method findIfExists(). Now from the method's name, I am assuming > that it is searching for the file ".cowstate.xml" using getFile() > method. But as I cannot debug it I am clueless that why the returned > File object is null and hence file.exists() is throwing the above > NullPointerException. Is it a OS issue that getFile() is failing? > The constructor code of COWStateXmlStorageHandler is here > > public COWStateXmlStorageHandler() { > states = new ConcurrentCache<FileName, COWStateXml> > (COWStateXmlStorageHandler.class, "states", null, > ConcurrentCache.SOFT) { > protected COWStateXml findIfExists(FileName key) throws > Exception { > FileObject file = getFile(key); > return file.exists() ? new COWStateXml(file) : null; > } > > protected COWStateXml createValue(FileName key) throws > Exception { > return new COWStateXml(getFile(key)); > } > }; > } > > > Please help as these errors are now coming frequently and is causing > much trouble. > > Thanks, > Kaushik > |
Free forum by Nabble | Edit this page |