It would be bug or limitation of development environment.
I have not met them on real appengine environment because
container looks like running on single thread model.
Normally it would not need to be synchronized I think.

On Sep 11, 4:41 pm, "patrizio.munzi" <[email protected]> wrote:
> Isn't this an important subject to address?
> Are all method calling the makePersistent method needed to be
> synchronized...??
> Is this a bug..??
>
> No one has any consideration???
>
> Thanks
>
> On Sep 10, 10:35 am, "patrizio.munzi" <[email protected]> wrote:
>
> > I did a few more investigation and It looks like a threads safety
> > problem.
> > In fact if I synchronize the method
> > com.myapp.server.datastore.EventsManager.addEvent whithin
> > makePersistent is called everything works fine.
>
> > I think here experts are needed..
> > :-)
>
> > Bye
>
> > On Sep 10, 10:18 am, "patrizio.munzi" <[email protected]> wrote:
>
> > > Hi everybody I'm having an ArrayOutOfBoundException from nucleus...
>
> > > I don't know where it comes from...
> > > Can anyone give me some information about it...
> > > Here's the stack trace...
> > > -----------------------------------------------
> > > The server is running athttp://localhost:8181/
> > > java.lang.ArrayIndexOutOfBoundsException: 1187
> > >         at org.datanucleus.plugin.ConfigurationElement.putAttribute
> > > (ConfigurationElement.java:104)
> > >         at
> > > org.datanucleus.store.appengine.DatastorePluginRegistry.getExtensionPoint
> > > (DatastorePluginRegistry.java:59)
> > >         at org.datanucleus.plugin.PluginManager.getExtensionPoint
> > > (PluginManager.java:65)
> > >         at
> > > org.datanucleus.plugin.PluginManager.getConfigurationElementForExtension
> > > (PluginManager.java:113)
> > >         at 
> > > org.datanucleus.plugin.PluginManager.getAttributeValueForExtension
> > > (PluginManager.java:230)
> > >         at org.datanucleus.ObjectManagerImpl.getCallbackHandler
> > > (ObjectManagerImpl.java:3804)
> > >         at org.datanucleus.state.AbstractStateManager.getCallbackHandler
> > > (AbstractStateManager.java:160)
> > >         at
> > > org.datanucleus.state.JDOStateManagerImpl.initialiseForPersistentNew
> > > (JDOStateManagerImpl.java:466)
> > >         at
> > > org.datanucleus.state.StateManagerFactory.newStateManagerForPersistentNew
> > > (StateManagerFactory.java:151)
> > >         at org.datanucleus.ObjectManagerImpl.persistObjectInternal
> > > (ObjectManagerImpl.java:1297)
> > >         at org.datanucleus.ObjectManagerImpl.persistObject
> > > (ObjectManagerImpl.java:1175)
> > >         at org.datanucleus.jdo.JDOPersistenceManager.jdoMakePersistent
> > > (JDOPersistenceManager.java:669)
> > >         at org.datanucleus.jdo.JDOPersistenceManager.makePersistent
> > > (JDOPersistenceManager.java:694)
> > >         at com.myapp.server.datastore.EventsManager.addEvent
> > > (EventsManager.java:167)
> > >         at 
> > > com.myapp.server.restlet.EventResource.addEvent(EventResource.java:
> > > 30)
> > >         at sun.reflect.GeneratedMethodAccessor10.invoke(Unknown Source)
> > >         at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> > >         at java.lang.reflect.Method.invoke(Unknown Source)
> > >         at 
> > > org.restlet.resource.ServerResource.doHandle(ServerResource.java:
> > > 390)
> > >         at 
> > > org.restlet.resource.ServerResource.doHandle(ServerResource.java:
> > > 328)
> > >         at org.restlet.resource.ServerResource.doNegotiatedHandle
> > > (ServerResource.java:581)
> > >         at org.restlet.resource.ServerResource.doConditionalHandle
> > > (ServerResource.java:254)
> > >         at org.restlet.resource.ServerResource.handle(ServerResource.java:
> > > 923)
> > >         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:201)
> > >         at org.restlet.routing.Router.doHandle(Router.java:321)
> > >         at org.restlet.routing.Router.handle(Router.java:520)
> > >         at org.restlet.routing.Filter.doHandle(Filter.java:156)
> > >         at org.restlet.routing.Filter.handle(Filter.java:201)
> > >         at org.restlet.routing.Filter.doHandle(Filter.java:156)
> > >         at org.restlet.routing.Filter.handle(Filter.java:201)
> > >         at org.restlet.routing.Filter.doHandle(Filter.java:156)
> > >         at org.restlet.engine.application.StatusFilter.doHandle
> > > (StatusFilter.java:152)
> > >         at org.restlet.routing.Filter.handle(Filter.java:201)
> > >         at org.restlet.routing.Filter.doHandle(Filter.java:156)
> > >         at org.restlet.routing.Filter.handle(Filter.java:201)
> > >         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:344)
> > >         at org.restlet.routing.Filter.doHandle(Filter.java:156)
> > >         at org.restlet.routing.Filter.handle(Filter.java:201)
> > >         at org.restlet.routing.Router.doHandle(Router.java:321)
> > >         at org.restlet.routing.Router.handle(Router.java:520)
> > >         at org.restlet.routing.Filter.doHandle(Filter.java:156)
> > >         at org.restlet.routing.Filter.handle(Filter.java:201)
> > >         at org.restlet.routing.Router.doHandle(Router.java:321)
> > >         at org.restlet.routing.Router.handle(Router.java:520)
> > >         at org.restlet.routing.Filter.doHandle(Filter.java:156)
> > >         at org.restlet.routing.Filter.handle(Filter.java:201)
> > >         at org.restlet.engine.ChainHelper.handle(ChainHelper.java:111)
> > >         at org.restlet.Component.handle(Component.java:403)
> > >         at org.restlet.Server.handle(Server.java:350)
> > >         at org.restlet.engine.ServerHelper.handle(ServerHelper.java:71)
> > >         at org.restlet.engine.http.HttpServerHelper.handle
> > > (HttpServerHelper.java:149)
> > >         at 
> > > org.restlet.ext.servlet.ServerServlet.service(ServerServlet.java:
> > > 967)
> > >         at javax.servlet.http.HttpServlet.service(HttpServlet.java:806)
> > >         at 
> > > org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:
> > > 487)
> > >         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> > > (ServletHandler.java:1093)
> > >         at
> > > com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter
> > > (TransactionCleanupFilter.java:43)
> > >         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> > > (ServletHandler.java:1084)
> > >         at 
> > > com.google.appengine.tools.development.StaticFileFilter.doFilter
> > > (StaticFileFilter.java:121)
> > >         at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter
> > > (ServletHandler.java:1084)
> > >         at org.mortbay.jetty.servlet.ServletHandler.handle
> > > (ServletHandler.java:360)
> > >         at org.mortbay.jetty.security.SecurityHandler.handle
> > > (SecurityHandler.java:216)
> > >         at org.mortbay.jetty.servlet.SessionHandler.handle
> > > (SessionHandler.java:181)
> > >         at org.mortbay.jetty.handler.ContextHandler.handle
> > > (ContextHandler.java:712)
> > >         at 
> > > org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:
> > > 405)
> > >         at 
> > > com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle
> > > (DevAppEngineWebAppContext.java:54)
> > >         at org.mortbay.jetty.handler.HandlerWrapper.handle
> > > (HandlerWrapper.java:139)
> > >         at com.google.appengine.tools.development.JettyContainerService
> > > $ApiProxyHandler.handle(JettyContainerService.java:313)
> > >         at org.mortbay.jetty.handler.HandlerWrapper.handle
> > > (HandlerWrapper.java:139)
> > >         at org.mortbay.jetty.Server.handle(Server.java:313)
> > >         at 
> > > org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:
> > > 506)
> > >         at org.mortbay.jetty.HttpConnection$RequestHandler.content
> > > (HttpConnection.java:844)
> > >         at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:644)
> > >         at 
> > > org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
> > >         at 
> > > org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381)
> > >         at org.mortbay.io.nio.SelectChannelEndPoint.run
> > > (SelectChannelEndPoint.java:396)
> > >         at org.mortbay.thread.BoundedThreadPool$PoolThread.run
> > > (BoundedThreadPool.java:442)
> > > ------------------------------------------
>
> > > Thanks
>
>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to