Lists: | PostgreSQL : PostgreSQL 메일 링리스트 : 2006-03-25 이후 토토 사이트 순위Dev 07:51 |
---|
From: | dgovoni at metadapt(dot)com (Darren Govoni) |
---|---|
To: | |
Subject: | [Pljava-dev] Cannot find dynamic class |
Date: | 2006-03-25 04:23:31 |
Message-ID: | 4424C5C3.4000500@metadapt.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pljava-dev |
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
From: | thomas at tada(dot)se (Thomas Hallgren) |
---|---|
To: | |
Subject: | [Pljava-dev] Cannot find dynamic class |
Date: | 2006-03-25 07:51:00 |
Message-ID: | 4424F664.7060105@tada.se |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | PostgreSQL : PostgreSQL 메일 링리스트 : 2006-03-25 이후 토토 사이트 순위Dev 07:51 |
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
>
From: | dgovoni at metadapt(dot)com (Darren Govoni) |
---|---|
To: | |
Subject: | [Pljava-dev] Cannot find dynamic class |
Date: | 2006-03-25 17:22:14 |
Message-ID: | 44257C46.6070701@metadapt.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pljava-dev |
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
>>
>
From: | thomas at tada(dot)se (Thomas Hallgren) |
---|---|
To: | |
Subject: | [Pljava-dev] Cannot find dynamic class |
Date: | 2006-03-25 20:15:40 |
Message-ID: | 4425A4EC.6000101@tada.se |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pljava-dev |
Hi Darren,
Now I see what's going on. You're using an old version of PL/Java that
had issues when classes where loaded using threads different from the
main thread. The backend doesn't understand the concept of threads at
all so it assumes that a stack overflow has occurred when the thread
(and thus the stack) has changed.
Please upgrade to PL/Java 1.2.0.
Regards,
Thomas Hallgren
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
>>>
>>
>
From: | thomas at tada(dot)se (Thomas Hallgren) |
---|---|
To: | |
Subject: | [Pljava-dev] Cannot find dynamic class |
Date: | 2006-03-25 20:17:21 |
Message-ID: | 4425A551.1090807@tada.se |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Lists: | pljava-dev |
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
>>>
>>
>