thanks for the report, could you log it in issue tracking?

https://bugs.eclipse.org/bugs/enter_bug.cgi

RT -> Jetty

I'll start taking a look now

jesse

--
jesse mcconnell
[email protected]


On Wed, Oct 20, 2010 at 10:35, Mike Jiang <[email protected]> wrote:

> Hi, All
>      I have used the jetty server 7.1.3 as the app server for a while.
> First the JAAS (Java Authentication and Authorization service) is used and
> it worked with no error.
>      Secondly, we tried to use the Session Clustering with Database, a
> feature offered by the jetty server also. It's for the case in which there
> are multiple server instances running in a load balancing environment. The
> DB is used as a persistent storage for the session's attributes so the
> attributes can be shared by the server instances.
>
>      However, when the JAAS and Session Clustering with DB are in effect at
> the same time, a NonSerializableException  was thrown as follows,
>
>      2010-10-06 15:51:08.549:WARN::Problem persisting changed session data
> id=fredsft3xjud8yc59jaiszql57lo
>
> *java.io.NotSerializableException*:
> org.eclipse.jetty.server.session.JDBCSessionManager
>
>       at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>
>       at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>
>       at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>
>       at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>
>       at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>
>       at java.io.ObjectOutputStream.defaultWriteFields(Unknown Source)
>
>       at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>
>       at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>
>       at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>
>       at java.io.ObjectOutputStream.writeObject(Unknown Source)
>
>       at java.util.concurrent.ConcurrentHashMap.writeObject(Unknown Source)
>
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(*Native Method*)
>
>       at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>
>       at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>
>       at java.lang.reflect.Method.invoke(Unknown Source)
>
>       at java.io.ObjectStreamClass.invokeWriteObject(Unknown Source)
>
>       at java.io.ObjectOutputStream.writeSerialData(Unknown Source)
>
>       at java.io.ObjectOutputStream.writeOrdinaryObject(Unknown Source)
>
>       at java.io.ObjectOutputStream.writeObject0(Unknown Source)
>
>       at java.io.ObjectOutputStream.writeObject(Unknown Source)
>
>       at org.eclipse.jetty.server.session.JDBCSessionManager.updateSession(
> *JDBCSessionManager.java:949*)
>
>       at
> org.eclipse.jetty.server.session.JDBCSessionManager$Session.complete(*
> JDBCSessionManager.java:341*)
>
>       at org.eclipse.jetty.server.session.AbstractSessionManager.complete(
> *AbstractSessionManager.java:144*)
>
>       at org.eclipse.jetty.server.session.SessionHandler.doScope(*
> SessionHandler.java:199*)
>
>       at org.eclipse.jetty.server.handler.ContextHandler.doScope(*
> ContextHandler.java:860*)
>
>       at org.eclipse.jetty.server.handler.ScopedHandler.handle(*
> ScopedHandler.java:117*)
>
>       at org.eclipse.jetty.server.handler.HandlerList.handle(*
> HandlerList.java:47*)
>
>       at org.eclipse.jetty.server.handler.HandlerWrapper.handle(*
> HandlerWrapper.java:113*)
>
>       at org.eclipse.jetty.server.Server.handle(*Server.java:335*)
>
>       at org.eclipse.jetty.server.HttpConnection.handleRequest(*
> HttpConnection.java:588*)
>
>       at
> org.eclipse.jetty.server.HttpConnection$RequestHandler.headerComplete(*
> HttpConnection.java:1029*)
>
>       at org.eclipse.jetty.http.HttpParser.parseNext(*HttpParser.java:549*
> )
>
>       at org.eclipse.jetty.http.HttpParser.parseAvailable(*
> HttpParser.java:211*)
>
>       at org.eclipse.jetty.server.HttpConnection.handle(*
> HttpConnection.java:418*)
>
>       at org.eclipse.jetty.io.nio.SelectChannelEndPoint.run(*
> SelectChannelEndPoint.java:489*)
>
>       at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(*
> QueuedThreadPool.java:436*)
>
>       at java.lang.Thread.run(Unknown Source)
>
>
>    Debugging into the code, it was found that the problem was caused in
> the following steps:
>
>
>    1). In the process of the JAAS, the code sets a class:
> SessionAuthentication as a session attribute. SessionAuthentication is
> implemented as a serializable object but its member, DefaultUserIdentity is
> not. So the SessionAuthentication is not a serializable object at all;
>
>    2). In Session Clustering with DB process, the JDBCSessionManager tried
> to save all the sessions' attributes-all of them must be serializable-to the
> database. However, one of the attribute, SessionAuthentication, is not a
> serialiable object, so the above exception is thrown and the process is
> interrupted.
>
>
>    Kindly hope you can help me for this.
>
>
>    Thanks,
>
>
>    M. J.
>
>
>
>
> _______________________________________________
> jetty-users mailing list
> [email protected]
> https://dev.eclipse.org/mailman/listinfo/jetty-users
>
>
_______________________________________________
jetty-users mailing list
[email protected]
https://dev.eclipse.org/mailman/listinfo/jetty-users

Reply via email to