Logger.throwing logs at Level.FINER. Do you have your logging configured to log at that level (or more fine)?
On Thu, Aug 27, 2009 at 2:20 PM, Albert Attard <[email protected]>wrote: > Hey Toby: > I'm having some trouble with the logging functionality. I'm logging my > exceptions but nothing is showing on the logs. Following a simple class > which uses logging. > > private static final Logger log = > Logger.getLogger(MyClass.class.getName()); > > ... > }catch(Exception e) > log.throwing("MyClass", "MyMethod", e); > } > > Am I missing something? > > Regards, > Albert Attard > > Pablo Picasso<http://www.brainyquote.com/quotes/authors/p/pablo_picasso.html> > - "Computers are useless. They can only give you answers." > > 2009/8/26 Toby Reyelts <[email protected]> > >> Can you provide the full stacktrace for the exception? >> >> >> On Wed, Aug 26, 2009 at 2:58 PM, Albert Attard <[email protected]>wrote: >> >>> Hey Toby: >>> Did as you instructed and worked. Thanks a lot Toby. Let me know should >>> you need anything. I'm glad to help. >>> >>> >>> Another question about Janino: I'm getting the following exception on the >>> live app-engine when the dynamic code (the code that is compiled by janino) >>> has a compilation error: >>> >>> An error occurred: java.security.AccessControlException: access denied >>> (java.lang.RuntimePermissions accessDeclaredMembers) >>> >>> >>> On the local environment, janino returns the line number where the error >>> occurred, which is very helpful for the students. >>> >>> Cheers, >>> Albert Attard >>> >>> Samuel >>> Goldwyn<http://www.brainyquote.com/quotes/authors/s/samuel_goldwyn.html> - >>> "I'm willing to admit that I may not always be right, but I am never >>> wrong." >>> >>> 2009/8/26 Toby Reyelts <[email protected]> >>> >>> >>>> Hey Albert, >>>> >>>> Even though I haven't actually seen the changes that you made, I believe >>>> they were unnecessary. (Go out on a limb with me here). I tracked the fault >>>> down to an error in our runtime that can be worked around by just >>>> recompiling the code. You should be able to confirm this on your end by >>>> recompiling Janino from source *without* any of the changes you made. >>>> Please make sure you've set the target version to 1.5 or 1.6. >>>> >>>> On Wed, Aug 26, 2009 at 4:51 AM, Albert Attard >>>> <[email protected]>wrote: >>>> >>>>> Hey Toby: >>>>> Janino api include classes that are not supported by the app-engine. >>>>> All I did is commented out the code that the app-engine didn't like in >>>>> janino and repackaged it. >>>>> >>>>> I did the following: >>>>> >>>>> - Downloaded the source for janino: >>>>> http://www.janino.net/download/janino-2.5.15.zip >>>>> - I've created a new Google Web Project in Eclipse >>>>> - I've copied the source into the Google Web Project >>>>> - Than I've *unsafely* commented out code that was not supported by >>>>> the Google app-engine >>>>> - Repackaged the edited code into a new jar and deployed it with my >>>>> project instead of the original one >>>>> - The simple proof of concept seams to work >>>>> >>>>> As you can see at the simple demo: http://ask-me.appspot.com/ the code >>>>> seams to work. Hope you manage to complete this question :) >>>>> >>>>> Cheers, >>>>> Albert Attard >>>>> >>>>> Stephen >>>>> Leacock<http://www.brainyquote.com/quotes/authors/s/stephen_leacock.html> >>>>> - "I detest life-insurance agents: they always argue that I shall some day >>>>> die, which is not so." >>>>> >>>>> 2009/8/25 Toby Reyelts <[email protected]> >>>>> >>>>> Hey Albert, >>>>>> >>>>>> That code should actually work ok, but you've managed to tickle a bug >>>>>> in our runtime. I've filed an >>>>>> issue<http://code.google.com/p/googleappengine/issues/detail?id=2028>for >>>>>> you here. The fix for this probably won't make the next release, but it >>>>>> should come shortly thereafter. >>>>>> >>>>>> >>>>>> On Tue, Aug 25, 2009 at 6:33 AM, Albert Attard < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> Hi Toby: >>>>>>> Thanks for you feedback. >>>>>>> >>>>>>> I've did a small prototype: http://ask-me.appspot.com/ . It's >>>>>>> working fine locally, but it's throwing the following exception when >>>>>>> executed on the app-engine: >>>>>>> >>>>>>> javax.servlet.ServletContext log: Exception while dispatching >>>>>>> incoming RPC call >>>>>>> com.google.gwt.user.server.rpc.UnexpectedException: Service method >>>>>>> 'public abstract com.albertattard.askme.client.utils.AssessmentTO >>>>>>> com.albertattard.askme.client.AssessorService.assessCode(java.lang.String)' >>>>>>> threw an unexpected exception: java.lang.VerifyError: (class: >>>>>>> org/codehaus/janino/ByteArrayClassLoader, method: findClass signature: >>>>>>> (Ljava/lang/String;)Ljava/lang/Class;) Illegal type in constant pool >>>>>>> at >>>>>>> com.google.gwt.user.server.rpc.RPC.encodeResponseForFailure(RPC.java:360) >>>>>>> at >>>>>>> com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:546) >>>>>>> at >>>>>>> com.google.gwt.user.server.rpc.RemoteServiceServlet.processCall(RemoteServiceServlet.java:166) >>>>>>> at >>>>>>> com.google.gwt.user.server.rpc.RemoteServiceServlet.doPost(RemoteServiceServlet.java:86) >>>>>>> at javax.servlet.http.HttpServlet.service(HttpServlet.java:713) >>>>>>> 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.runtime.jetty.SaveSessionFilter.doFilter(SaveSessionFilter.java:35) >>>>>>> at >>>>>>> org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) >>>>>>> at >>>>>>> com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) >>>>>>> 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.runtime.jetty.AppVersionHandlerMap.handle(AppVersionHandlerMap.java:237) >>>>>>> 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.headerComplete(HttpConnection.java:830) >>>>>>> at >>>>>>> com.google.apphosting.runtime.jetty.RpcRequestParser.parseAvailable(RpcRequestParser.java:76) >>>>>>> at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) >>>>>>> at >>>>>>> com.google.apphosting.runtime.jetty.JettyServletEngineAdapter.serviceRequest(JettyServletEngineAdapter.java:139) >>>>>>> at >>>>>>> com.google.apphosting.runtime.JavaRuntime.handleRequest(JavaRuntime.java:235) >>>>>>> at >>>>>>> com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:4823) >>>>>>> at >>>>>>> com.google.apphosting.base.RuntimePb$EvaluationRuntime$6.handleBlockingRequest(RuntimePb.java:4821) >>>>>>> at >>>>>>> com.google.net.rpc.impl.BlockingApplicationHandler.handleRequest(BlockingApplicationHandler.java:24) >>>>>>> at >>>>>>> com.google.net.rpc.impl.RpcUtil.runRpcInApplication(RpcUtil.java:359) >>>>>>> at com.google.net.rpc.impl.Server$2.run(Server.java:820) >>>>>>> at >>>>>>> com.google.tracing.LocalTraceSpanRunnable.run(LocalTraceSpanRunnable.java:56) >>>>>>> at >>>>>>> com.google.tracing.LocalTraceSpanBuilder.internalContinueSpan(LocalTraceSpanBuilder.java:516) >>>>>>> at com.google.net.rpc.impl.Server.startRpc(Server.java:775) >>>>>>> at com.google.net.rpc.impl.Server.processRequest(Server.java:348) >>>>>>> at >>>>>>> com.google.net.rpc.impl.ServerConnection.messageReceived(ServerConnection.java:436) >>>>>>> at >>>>>>> com.google.net.rpc.impl.RpcConnection.parseMessages(RpcConnection.java:319) >>>>>>> at >>>>>>> com.google.net.rpc.impl.RpcConnection.dataReceived(RpcConnection.java:290) >>>>>>> at >>>>>>> com.google.net.async.Connection.handleReadEvent(Connection.java:428) >>>>>>> at >>>>>>> com.google.net.async.EventDispatcher.processNetworkEvents(EventDispatcher.java:762) >>>>>>> at >>>>>>> com.google.net.async.EventDispatcher.internalLoop(EventDispatcher.java:207) >>>>>>> at >>>>>>> com.google.net.async.EventDispatcher.loop(EventDispatcher.java:101) >>>>>>> at >>>>>>> com.google.net.rpc.RpcService.runUntilServerShutdown(RpcService.java:251) >>>>>>> at >>>>>>> com.google.apphosting.runtime.JavaRuntime$RpcRunnable.run(JavaRuntime.java:374) >>>>>>> at java.lang.Thread.run(Unknown Source) >>>>>>> Caused by: java.lang.VerifyError: (class: >>>>>>> org/codehaus/janino/ByteArrayClassLoader, method: findClass signature: >>>>>>> (Ljava/lang/String;)Ljava/lang/Class;) Illegal type in constant pool >>>>>>> at >>>>>>> org.codehaus.janino.SimpleCompiler.compileToClassLoader(SimpleCompiler.java) >>>>>>> at org.codehaus.janino.SimpleCompiler.cook(SimpleCompiler.java) >>>>>>> at org.codehaus.janino.Cookable.cook(Cookable.java) >>>>>>> at org.codehaus.janino.Cookable.cook(Cookable.java) >>>>>>> at org.codehaus.janino.Cookable.cook(Cookable.java) >>>>>>> at >>>>>>> com.albertattard.askme.server.DemoSwapAssessor.assess(DemoSwapAssessor.java:21) >>>>>>> at >>>>>>> com.albertattard.askme.server.AssessorServiceImpl.assessCode(AssessorServiceImpl.java:15) >>>>>>> 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 >>>>>>> com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_$3.run(Method_.java:149) >>>>>>> at java.security.AccessController.doPrivileged(Native Method) >>>>>>> at >>>>>>> com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_.privilegedInvoke(Method_.java:147) >>>>>>> at >>>>>>> com.google.apphosting.runtime.security.shared.intercept.java.lang.reflect.Method_.invoke(Method_.java:120) >>>>>>> at >>>>>>> com.google.gwt.user.server.rpc.RPC.invokeAndEncodeResponse(RPC.java:527) >>>>>>> ... 43 more >>>>>>> >>>>>>> >>>>>>> The janino ByteArrayClassLoader is not working well (not accepted) on >>>>>>> the app-engine :( >>>>>>> >>>>>>> Any other options? >>>>>>> >>>>>>> Cheers, >>>>>>> Albert Attard >>>>>>> >>>>>>> Marie von >>>>>>> Ebner-Eschenbach<http://www.brainyquote.com/quotes/authors/m/marie_von_ebnereschenbac.html> >>>>>>> - "Even a stopped clock is right twice a day." >>>>>>> >>>>>>> 2009/8/14 Toby Reyelts <[email protected]> >>>>>>> >>>>>>> >>>>>>>> We don't have any near term plans to whitelist javax.tools. Do you >>>>>>>> think something like janino <http://www.janino.net/> might work for >>>>>>>> you? >>>>>>>> >>>>>>>> >>>>>>>> On Fri, Aug 14, 2009 at 2:50 AM, Albert Attard < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Hi everyone: >>>>>>>>> >>>>>>>>> Background about the problem: >>>>>>>>> I'm a Java lecturer and would like to create an automated question >>>>>>>>> web application similar to a multiple choice questions and answers >>>>>>>>> but where >>>>>>>>> the students can practice coding instead of simply selecting an >>>>>>>>> answer. >>>>>>>>> >>>>>>>>> Multiple choice questions are very popular in web exams as these >>>>>>>>> are fully automated. You do the test and the system corrects it for >>>>>>>>> you and >>>>>>>>> gives you the results there and then. I would like to go one step >>>>>>>>> further >>>>>>>>> and have the student to supply a code fragment or even a class(es) >>>>>>>>> and have >>>>>>>>> the system automatically correcting it in a similar fashion to the >>>>>>>>> multiple >>>>>>>>> choice questions. >>>>>>>>> >>>>>>>>> Example (in a nutshell): >>>>>>>>> The student is asked to write a method: that given an array of int >>>>>>>>> and two indices of type int (between 0 and the size of the array - >>>>>>>>> 1), this >>>>>>>>> method will swap the elements at the given indices. The student >>>>>>>>> will write the method in the provided text area and submit it. Then >>>>>>>>> the system will include this method into a class, compile it and by >>>>>>>>> using reflection executes it with an array of values (similar to >>>>>>>>> JUnit) to >>>>>>>>> ensure that it is working as expected. During this process the system >>>>>>>>> will >>>>>>>>> be awarding the student marks and will display the final result >>>>>>>>> together >>>>>>>>> with comments as required. >>>>>>>>> >>>>>>>>> Google Appengine >>>>>>>>> I have a prototype and it works great on Tomcat. Yes I know that it >>>>>>>>> is subject to Java code injection but that's not an issue at this >>>>>>>>> stage. This issue can be fixed at a later stage. Unfortunately I >>>>>>>>> cannot >>>>>>>>> implement it on the Google Appengine as most of the >>>>>>>>> required functionality, such as writing to a file or JavaCompiler is >>>>>>>>> disabled . I've managed to compile the classes to database (without >>>>>>>>> writing >>>>>>>>> to the file system) and load classes from database (without reading >>>>>>>>> from the >>>>>>>>> file system), which can integrate well with the provided datastore. >>>>>>>>> Is there a way (or a procedure) of implementing such a system on >>>>>>>>> the Google Appengine? This application will be a free education tool >>>>>>>>> for everyone who would like to use it. >>>>>>>>> >>>>>>>>> Thanks in advance, >>>>>>>>> Albert Attard >>>>>>>>> >>>>>>>>> Ted >>>>>>>>> Turner<http://www.brainyquote.com/quotes/authors/t/ted_turner.html> - >>>>>>>>> "Sports is like a war without the killing." >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> >>>> >>>> >>>> >>> >>> >>> >> >> >> > > > > --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---
