Thanks for your response. Here goes the sample code:
//In the file TrialBalance.java package accountant; public class TrialBalance implements java.io.Serializable { } //In the file DerbyMehtods.java package accountant; public class DerbyMethods { public static TrialBalance getTrialBalance() { return new TrialBalance(); } } //In the database I have defined a UDT TrialBalance using the following command: CREATE TYPE "TRIALBALANCE" EXTERNAL NAME 'accountant.TrialBalance' LANGUAGE JAVA // A function named GetTrialBalance is also defined in the database using the following command: CREATE FUNCTION GETTrialBalance () RETURNS TRIALBALANCE PARAMETER STYLE JAVA NO SQL LANGUAGE JAVA EXTERNAL NAME 'accountant.DerbyMethods.getTrialBalance' On invoking the function GetTrialBalance, an error is thrown The stack trace dump is attached to the mail as a text file. Trust the above information is sufficient to look into the problem. Should further information is required, please let me know. Thanks, Dinesh --- On Fri, 3/9/10, Knut Anders Hatlen <knut.hat...@oracle.com> wrote: From: Knut Anders Hatlen <knut.hat...@oracle.com> Subject: Re: Returning a UDT from a function To: "Derby Discussion" <derby-user@db.apache.org> Date: Friday, 3 September, 2010, 2:30 PM Dinesh Bajaj <dinesh.ba...@ymail.com> writes: > It has been a week since I posted this query, but it hasn't elicited > any response. May I know why? > > Is this query too simplistic to be dismissed with contempt? Or is it > too advanced even for some of the highly competent list members? Or > is it just plain indifference that no one bothered to reply? > > Let me know so I can phrase my future queries accordingly. Hi Dinesh, I suppose no one who read the question had come across that problem before. If you could post a small example that shows how to reproduce the IllegalAccessError, perhaps someone will be able to say if you need to do something differently or if you've found a bug. Thanks, -- Knut Anders
2010-09-03 10:49:43.496 GMT : Apache Derby Network Server - 10.6.1.0 - (938214) started and ready to accept connections on port 1527 2010-09-03 10:55:03.690 GMT : access denied (java.lang.RuntimePermission accessClassInPackage.sun.reflect) java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.reflect) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) at java.security.AccessController.checkPermission(AccessController.java:546) at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) at java.lang.SecurityManager.checkPackageAccess(SecurityManager.java:1512) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:298) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at org.apache.derby.impl.services.reflect.JarLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at sun.misc.Unsafe.defineClass(Native Method) at sun.reflect.ClassDefiner.defineClass(ClassDefiner.java:45) at sun.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:381) at java.security.AccessController.doPrivileged(Native Method) at sun.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:377) at sun.reflect.MethodAccessorGenerator.generateSerializationConstructor(MethodAccessorGenerator.java:95) at sun.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:313) at java.io.ObjectStreamClass.getSerializableConstructor(ObjectStreamClass.java:1327) at java.io.ObjectStreamClass.access$1500(ObjectStreamClass.java:52) at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:437) at java.security.AccessController.doPrivileged(Native Method) at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:413) at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:310) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326) at org.apache.derby.impl.drda.DDMWriter.writeUDT(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.writeFdocaVal(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.writeFDODTA(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.writeQRYDTA(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source) 2010-09-03 10:55:03.800 GMT : Execution failed because of Permanent Agent Error: SVRCOD = 40; RDBNAM = AccountantDB; diagnostic msg = access denied (java.lang.RuntimePermission accessClassInPackage.sun.reflect) org.apache.derby.impl.drda.DRDAProtocolException: Execution failed because of Permanent Agent Error: SVRCOD = 40; RDBNAM = AccountantDB; diagnostic msg = access denied (java.lang.RuntimePermission accessClassInPackage.sun.reflect) at org.apache.derby.impl.drda.DRDAProtocolException.newAgentError(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.sendUnexpectedException(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.handleException(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source) 2010-09-03 10:55:03.801 GMT : access denied (java.lang.RuntimePermission accessClassInPackage.sun.reflect) java.security.AccessControlException: access denied (java.lang.RuntimePermission accessClassInPackage.sun.reflect) at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) at java.security.AccessController.checkPermission(AccessController.java:546) at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) at java.lang.SecurityManager.checkPackageAccess(SecurityManager.java:1512) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:298) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:169) at org.apache.derby.impl.services.reflect.JarLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(ClassLoader.java:248) at sun.misc.Unsafe.defineClass(Native Method) at sun.reflect.ClassDefiner.defineClass(ClassDefiner.java:45) at sun.reflect.MethodAccessorGenerator$1.run(MethodAccessorGenerator.java:381) at java.security.AccessController.doPrivileged(Native Method) at sun.reflect.MethodAccessorGenerator.generate(MethodAccessorGenerator.java:377) at sun.reflect.MethodAccessorGenerator.generateSerializationConstructor(MethodAccessorGenerator.java:95) at sun.reflect.ReflectionFactory.newConstructorForSerialization(ReflectionFactory.java:313) at java.io.ObjectStreamClass.getSerializableConstructor(ObjectStreamClass.java:1327) at java.io.ObjectStreamClass.access$1500(ObjectStreamClass.java:52) at java.io.ObjectStreamClass$2.run(ObjectStreamClass.java:437) at java.security.AccessController.doPrivileged(Native Method) at java.io.ObjectStreamClass.<init>(ObjectStreamClass.java:413) at java.io.ObjectStreamClass.lookup(ObjectStreamClass.java:310) at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1106) at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326) at org.apache.derby.impl.drda.DDMWriter.writeUDT(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.writeFdocaVal(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.writeFDODTA(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.writeQRYDTA(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.processCommands(Unknown Source) at org.apache.derby.impl.drda.DRDAConnThread.run(Unknown Source)