[Pljava-dev] Cannot find dynamic class

Darren Govoni dgovoni at metadapt.com
Sat Mar 25 17:22:14 UTC 2006


Hi Thomas,
    Thanks for responding. :) Here is my stack trace.

INFO:  24 Mar 06 23:06:59 org.postgresql.pljava.sqlj.Loader Failed to 
load class
        org.postgresql.pljava.internal.ServerException: stack depth 
limit exceeded
                at 
org.postgresql.pljava.internal.ExecutionPlan._cursorOpen(Native Method)
                at 
org.postgresql.pljava.internal.ExecutionPlan.cursorOpen(ExecutionPlan.java:136)
                at 
org.postgresql.pljava.jdbc.SPIStatement.executePlan(SPIStatement.java:114)
                at 
org.postgresql.pljava.jdbc.SPIPreparedStatement.execute(SPIPreparedStatement.java:263)
                at 
org.postgresql.pljava.jdbc.SPIPreparedStatement.executeQuery(SPIPreparedStatement.java:72)
                at 
org.postgresql.pljava.sqlj.Loader.findClass(Loader.java:171)
                at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
                at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
                at 
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
                at 
com.echomine.net.SocketConnector$1.run(SocketConnector.java:285)
                at java.lang.Thread.run(Thread.java:534)

java.lang.NoClassDefFoundError: alt/java/net/SocketImpl
        at com.echomine.net.SocketConnector$1.run(SocketConnector.java:285)
        at java.lang.Thread.run(Thread.java:534)

----------


Here is the code generating it.

Class: SocketConnector.java

....
import alt.java.net.SocketImpl;
.....

    public void aconnect(final SocketHandler socketHandler, final 
ConnectionModel connectionModel) {
        Thread thread = new Thread(new Runnable() {
            public void run() {
                alt.java.net.Socket socket = null;
                try {
                    ConnectionEvent event = new 
ConnectionEvent(connectionModel, ConnectionEvent.CONNECTION_STARTING
);
                    ConnectionEvent vetoEvent = new 
ConnectionEvent(connectionModel, ConnectionEvent.CONNECTION_VETO
ED);
                    fireConnectionStarting(event, vetoEvent);
                    socketHandler.start();
                    if (connectionModel.isSSL()) {
                        socket = new 
SocketImpl(negotiateSSLConnection(connectionModel));
                    } else {
--->>>              socket = new SocketImpl(new 
Socket(connectionModel.getHost(), connectionModel.getPort()));
                    }


It appears the class in question is indeed in the jar I load.

Thank you!!!

Darren


Thomas Hallgren wrote:
> Hi Darren,
> What do you mean when you say 'dynamically loaded'? Do you load it 
> using an explicit ClassLoader.loadClass() call? And that succeeds? 
> Also, when you say 'statically initializes', you you mean that the 
> class in question has a static attribute of class SocketImpl, does it 
> extend that class, or does it use an explicit ClassLoader inside of a 
> static initializer?
>
> Is it a ClassNotFoundException or a NoClassDefFoundError that you are 
> experiencing? Can you provide a stack trace?
>
> Regards,
> Thomas Hallgren
>
>
> Darren Govoni wrote:
>> Hi,
>>
>> Running pljava 1.1 with postgres 8.0.3.
>>
>>   I have a single jar that contains all my classes. One class 
>> 'SocketImpl', is dynamically loaded, however
>> pljava throws a class not found exception when I try to execute a 
>> function on a class that statically initializes
>> with 'SocketImpl'. Any tips very appreciated!
>>
>> Cheers,
>> Darren
>> _______________________________________________
>> Pljava-dev mailing list
>> Pljava-dev at gborg.postgresql.org
>> http://gborg.postgresql.org/mailman/listinfo/pljava-dev
>>   
>




More information about the Pljava-dev mailing list