[Pljava-dev] Cannot find dynamic class

Thomas Hallgren thomas at tada.se
Sat Mar 25 20:17:21 UTC 2006


I forgot. You'll need to use PostgreSQL 8.1 also.

- thomas

Darren Govoni wrote:
> 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