Hi,

When I create a Persistent shared object:

//set to true to indicate that is a persistent Shared Object
ISharedObject PSO = this.getSharedObject(scope, "messagePSO", true);

and then try and call the setAttribute, addSharedObjectListener or
registerServiceListener methods (Transient objects are fine), I get a
java.lang.StringIndexOutOfBoundsException. Is this a bug or am I doing
something wrong?

[ERROR] 37702 pool-1-thread-3:( org.red5.server.net.rtmp.RTMPHandler.error )
Error connecting
java.lang.StringIndexOutOfBoundsException: String index out of range: 0
       at java.lang.String.charAt(String.java:558)
       at org.red5.server.persistence.RamPersistence.getObjectId(
RamPersistence.java:111)
       at org.red5.server.persistence.RamPersistence.save(
RamPersistence.java:131)
       at org.red5.server.persistence.FilePersistence.save(
FilePersistence.java:367)
       at org.red5.server.so.SharedObject.notifyModified(SharedObject.java
:342)
       at org.red5.server.so.SharedObject.endUpdate(SharedObject.java:598)
       at org.red5.server.so.SharedObjectScope.endUpdate(
SharedObjectScope.java:166)
       at org.red5.server.so.SharedObjectScope.setAttribute(
SharedObjectScope.java:388)
       at org.red5.webapps.red5java.Application.initPSOwithListener(
Application.java:398)
       at org.red5.webapps.red5java.Application.appConnect(Application.java
:113)
       at org.red5.server.adapter.ApplicationAdapter.connect(
ApplicationAdapter.java:182)
       at org.red5.server.Scope.connect(Scope.java:456)
       at org.red5.server.BaseConnection.connect(BaseConnection.java:232)
       at org.red5.server.net.rtmp.RTMPHandler.onInvoke(RTMPHandler.java
:238)
       at org.red5.server.net.rtmp.BaseRTMPHandler.messageReceived(
BaseRTMPHandler.java:120)
       at org.red5.server.net.rtmp.RTMPMinaIoHandler.messageReceived(
RTMPMinaIoHandler.java:117)
       at
org.apache.mina.common.support.AbstractIoFilterChain$2.messageReceived(
AbstractIoFilterChain.java:189)
       at
org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageReceived
(AbstractIoFilterChain.java:502)
       at org.apache.mina.common.support.AbstractIoFilterChain.access$1000(
AbstractIoFilterChain.java:52)
       at
org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl$1.messageReceived
(AbstractIoFilterChain.java:777)
       at org.red5.io.filter.ExecutorFilter.processEvent(
ExecutorFilter.java:349)
       at org.red5.io.filter.ExecutorFilter$ProcessEventsRunnable.run(
ExecutorFilter.java:411)
       at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
ThreadPoolExecutor.java:650)
       at java.util.concurrent.ThreadPoolExecutor$Worker.run(
ThreadPoolExecutor.java:675)
       at java.lang.Thread.run(Thread.java:595)

getObjectId in RamPersistence.java calls getPath on an empty string and
therefore Persistent object methods fail from there.
--
C is forever.
_______________________________________________
Red5 mailing list
[email protected]
http://osflash.org/mailman/listinfo/red5_osflash.org

Reply via email to