Page 1 of 1

unable to remove folder

PostPosted: Sat Feb 02, 2013 8:59 pm
by darco
First of all, I would like to say this is an excellent program and my hats off to the Devs!
I am running the latest Serviio on my Linux Mint DE machine.
I recently removed a USB storage device and whenever I try to remove the folder from the console I get an error message "An unexpected error occurred (500) Check the log."
The log shows "2013-02-02 12:43:38,238 WARN [ServiioStatusService] PersistenceException occured. Returning error code 500 to the REST layer. Message: Cannot delete Repository with id = 3".
I tried a few things and I was able to delete other folders that were on the same device but this one just wont delete!
thxs

Re: unable to remove folder

PostPosted: Mon Feb 04, 2013 6:06 am
by slyguy42o
maybe one of the devs can offer a more elegant solution, but to get around this you can just wipe your library and let it recreate. You will will to redo all your settings however.

Re: unable to remove folder

PostPosted: Mon Feb 04, 2013 1:49 pm
by zip
Can you post the whole log with the error?

Re: unable to remove folder

PostPosted: Mon Feb 04, 2013 7:44 pm
by darco
Zip, sorry for not letting you have a chance to resolve the problem properly. I had too much time on my hands and I deleted the library.
Thanks again for a great product.
darco

Re: unable to remove folder

PostPosted: Tue Jun 04, 2013 12:34 pm
by blackriffs
I think I have a similar/related problem.

I have added several online sources before with no problem. I have just tried to add some more and remove some previously added sources and when I hit the save button ( on the php web-based console ) and the page reloads the changes haven't happened.

Here is the log that I have for when this error occurs:

  Code:
2013-06-04 13:22:57,369 DEBUG [RendererDAOImpl] Retrieving list of all stored renderers
2013-06-04 13:22:57,369 TRACE [DBConnectionPool] Getting pooled connection from pool Serviio DB Pool
2013-06-04 13:22:57,370 TRACE [DBConnectionPool] Releasing connection from pool Serviio DB Pool
2013-06-04 13:22:59,133 WARN  [ServiioStatusService] ConversionException occured. Returning error code 500 to the REST layer. Message: Zero length string : Zero length string
---- Debugging information ----
message             : Zero length string
cause-exception     : java.lang.NumberFormatException
cause-message       : Zero length string
class               : java.lang.Long
required-type       : java.lang.Long
converter-type      : com.thoughtworks.xstream.converters.SingleValueConverterWrapper
wrapped-converter   : com.thoughtworks.xstream.converters.basic.LongConverter
path                : /repository/sharedFolders/sharedFolder/accessGroupIds/id
class[1]            : java.util.LinkedHashSet
converter-type[1]   : com.thoughtworks.xstream.converters.collections.CollectionConverter
class[2]            : org.serviio.ui.representation.SharedFolder
converter-type[2]   : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
class[3]            : java.util.ArrayList
class[4]            : org.serviio.ui.representation.RepositoryRepresentation
version             : null
-------------------------------
2013-06-04 13:22:59,133 DEBUG [ServiioStatusService] Detailed exception:
com.thoughtworks.xstream.converters.ConversionException: Zero length string : Zero length string
---- Debugging information ----
message             : Zero length string
cause-exception     : java.lang.NumberFormatException
cause-message       : Zero length string
class               : java.lang.Long
required-type       : java.lang.Long
converter-type      : com.thoughtworks.xstream.converters.SingleValueConverterWrapper
wrapped-converter   : com.thoughtworks.xstream.converters.basic.LongConverter
path                : /repository/sharedFolders/sharedFolder/accessGroupIds/id
class[1]            : java.util.LinkedHashSet
converter-type[1]   : com.thoughtworks.xstream.converters.collections.CollectionConverter
class[2]            : org.serviio.ui.representation.SharedFolder
converter-type[2]   : com.thoughtworks.xstream.converters.reflection.ReflectionConverter
class[3]            : java.util.ArrayList
class[4]            : org.serviio.ui.representation.RepositoryRepresentation
version             : null
-------------------------------
        at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:79)
        at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
        at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
        at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
        at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71)
        at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentElementToCollection(CollectionConverter.java:79)
        at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:72)
        at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:66)
        at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:61)
        at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
        at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
        at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
        at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:355)
        at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:306)
        at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:234)
        at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
        at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
        at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
        at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
        at com.thoughtworks.xstream.converters.collections.AbstractCollectionConverter.readItem(AbstractCollectionConverter.java:71)
        at com.thoughtworks.xstream.converters.collections.CollectionConverter.addCurrentElementToCollection(CollectionConverter.java:79)
        at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:72)
        at com.thoughtworks.xstream.converters.collections.CollectionConverter.populateCollection(CollectionConverter.java:66)
        at com.thoughtworks.xstream.converters.collections.CollectionConverter.unmarshal(CollectionConverter.java:61)
        at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
        at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
        at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
        at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshallField(AbstractReflectionConverter.java:355)
        at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.doUnmarshal(AbstractReflectionConverter.java:306)
        at com.thoughtworks.xstream.converters.reflection.AbstractReflectionConverter.unmarshal(AbstractReflectionConverter.java:234)
        at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
        at com.thoughtworks.xstream.core.AbstractReferenceUnmarshaller.convert(AbstractReferenceUnmarshaller.java:65)
        at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:66)
        at com.thoughtworks.xstream.core.TreeUnmarshaller.convertAnother(TreeUnmarshaller.java:50)
        at com.thoughtworks.xstream.core.TreeUnmarshaller.start(TreeUnmarshaller.java:134)
        at com.thoughtworks.xstream.core.AbstractTreeMarshallingStrategy.unmarshal(AbstractTreeMarshallingStrategy.java:32)
        at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1052)
        at com.thoughtworks.xstream.XStream.unmarshal(XStream.java:1036)
        at com.thoughtworks.xstream.XStream.fromXML(XStream.java:921)
        at org.restlet.ext.xstream.XstreamRepresentation.getObject(XstreamRepresentation.java:163)
        at org.restlet.ext.xstream.XstreamConverter.toObject(XstreamConverter.java:197)
        at org.restlet.service.ConverterService.toObject(ConverterService.java:158)
        at org.restlet.resource.UniformResource.toObject(UniformResource.java:650)
        at org.restlet.resource.ServerResource.doHandle(ServerResource.java:431)
        at org.restlet.resource.ServerResource.put(ServerResource.java:1170)
        at org.restlet.resource.ServerResource.doHandle(ServerResource.java:521)
        at org.restlet.resource.ServerResource.doNegotiatedHandle(ServerResource.java:587)
        at org.restlet.resource.ServerResource.doConditionalHandle(ServerResource.java:299)
        at org.restlet.resource.ServerResource.handle(ServerResource.java:846)
        at org.restlet.resource.Finder.handle(Finder.java:510)
        at org.restlet.routing.Filter.doHandle(Filter.java:156)
        at org.restlet.routing.Filter.handle(Filter.java:203)
        at org.restlet.routing.Router.doHandle(Router.java:497)
        at org.restlet.routing.Router.handle(Router.java:737)
        at org.restlet.routing.Filter.doHandle(Filter.java:156)
        at org.restlet.routing.Filter.handle(Filter.java:203)
        at org.restlet.routing.Filter.doHandle(Filter.java:156)
        at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:151)
        at org.restlet.routing.Filter.handle(Filter.java:203)
        at org.restlet.routing.Filter.doHandle(Filter.java:156)
        at org.restlet.routing.Filter.handle(Filter.java:203)
        at org.restlet.engine.ChainHelper.handle(ChainHelper.java:111)
        at org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.java:72)
        at org.restlet.Application.handle(Application.java:391)
        at org.restlet.routing.Filter.doHandle(Filter.java:156)
        at org.restlet.routing.Filter.handle(Filter.java:203)
        at org.restlet.routing.Router.doHandle(Router.java:497)
        at org.restlet.routing.Router.handle(Router.java:737)
        at org.restlet.routing.Filter.doHandle(Filter.java:156)
        at org.restlet.routing.Filter.handle(Filter.java:203)
        at org.restlet.routing.Router.doHandle(Router.java:497)
        at org.restlet.routing.Router.handle(Router.java:737)
        at org.restlet.routing.Filter.doHandle(Filter.java:156)
        at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:151)
        at org.restlet.routing.Filter.handle(Filter.java:203)
        at org.restlet.routing.Filter.doHandle(Filter.java:156)
        at org.restlet.routing.Filter.handle(Filter.java:203)
        at org.restlet.engine.ChainHelper.handle(ChainHelper.java:111)
        at org.restlet.Component.handle(Component.java:388)
        at org.restlet.Server.handle(Server.java:488)
        at org.restlet.engine.http.connector.BaseServerHelper.handle(BaseServerHelper.java:158)
        at org.restlet.engine.http.connector.BaseServerHelper.handleInbound(BaseServerHelper.java:167)
        at org.restlet.engine.http.connector.BaseHelper.handleNextInbound(BaseHelper.java:418)
        at org.restlet.engine.http.connector.Connection.readMessages(Connection.java:696)
        at org.restlet.engine.http.connector.Controller$2.run(Controller.java:95)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NumberFormatException: Zero length string
        at java.lang.Long.decode(Long.java:630)
        at com.thoughtworks.xstream.converters.basic.LongConverter.fromString(LongConverter.java:27)
        at com.thoughtworks.xstream.converters.SingleValueConverterWrapper.fromString(SingleValueConverterWrapper.java:41)
        at com.thoughtworks.xstream.converters.SingleValueConverterWrapper.unmarshal(SingleValueConverterWrapper.java:49)
        at com.thoughtworks.xstream.core.TreeUnmarshaller.convert(TreeUnmarshaller.java:72)
        ... 87 more
2013-06-04 13:23:00,272 DEBUG [RendererDAOImpl] Retrieving list of all stored renderers
2013-06-04 13:23:00,272 TRACE [DBConnectionPool] Getting pooled connection from pool Serviio DB Pool
2013-06-04 13:23:00,273 TRACE [DBConnectionPool] Releasing connection from pool Serviio DB Pool
2013-06-04 13:23:00,273 DEBUG [RepositoryDAOImpl] Reading all Repositories
2013-06-04 13:23:00,279 TRACE [DBConnectionPool] Getting pooled connection from pool Serviio DB Pool

Not sure what to make of it so I hope you can help :)

Re: unable to remove folder

PostPosted: Tue Jun 04, 2013 1:55 pm
by blackriffs
Ok, this seems to have fixed itself when I went pro and applied the license... I didn't think that the online sources were a pro feature but I'm not too worried as I was going pro anyway :D

Re: unable to remove folder

PostPosted: Wed Jun 05, 2013 11:33 pm
by zip
blackriffs wrote:Ok, this seems to have fixed itself when I went pro and applied the license... I didn't think that the online sources were a pro feature but I'm not too worried as I was going pro anyway :D

It's probably a bug in the web UI related to the pro license handling.

Re: unable to remove folder

PostPosted: Thu Jun 06, 2013 6:37 am
by will
I had this last night (not the WebUI bug). I wanted to remove my picture folder before upgrading the library, using the official console it just stopped responding when I pressed save, then using ServiiDroid/WebUI it timed out after a while with a connection error. Ofcourse I had to restart the server to turn on logging, at which point it was either OK, or had finished deleting the folder 10 min later, as it it took me a while to realise what was happening. I had various entires like this in the standard log, but I guess that was due to mutiple requests to delete the same folder.
  Code:
2013-06-05 22:03:14,510 WARN  [ImageService] Image cannot be removed from the library because it cannot be found

I've seen this before when deleting large music libraries as well. Unfortunately because my server is quite slow, it takes a very long time to add 30GB of content just to remove it and re-add it.

When deleting a folder via the API, it looks like the method waits until the DB has been purged before returning/something blocks it, can it be pushed off to a new thread?

Re: unable to remove folder

PostPosted: Thu Jun 06, 2013 12:25 pm
by zip
will wrote:When deleting a folder via the API, it looks like the method waits until the DB has been purged before returning/something blocks it, can it be pushed off to a new thread?

It could but I left it like this on purpose, as any consequent calls to get list of repositories would return the folders that are being removed. So in the console you click delete, but you'll still get them back. I guess I could mark then with a flag as being deleted and return immediately only those with the flag set to false. Will create a ticket.