On Tuesday, July 29, 2003, at 11:17 AM, Scot P. Floess wrote:
> Can you send more code? Is "s" initialized in your synchronized
> block? You might print s before the synchronized block to verify...
> It could be your null pointer is there...
Sorry I didn't include more.. This is with JVM 1.4.1, so all the java.*
stuff is the standard source for that.
>>
>> I'm getting the below NPE:
>
> java.lang.NullPointerException
> at java.io.PrintWriter.write(PrintWriter.java:247)
> at java.io.PrintWriter.print(PrintWriter.java:392)
> at java.io.PrintWriter.println(PrintWriter.java:529)
> at java.lang.Throwable.printStackTrace(Throwable.java:509)
> at java.sql.SQLException.<init>(SQLException.java:103)
> at
> org.postgresql.util.PSQLException.<init>(PSQLException.java:19)
> at
> org.postgresql.jdbc1.AbstractJdbc1Connection.ExecSQL(AbstractJdbc1Conne
> c
> tion.java:480)
> at
> org.postgresql.jdbc1.AbstractJdbc1Connection.ExecSQL(AbstractJdbc1Conne
> c
> tion.java:461)
> at
> org.postgresql.jdbc1.AbstractJdbc1Connection.setAutoCommit(AbstractJdbc
> 1
> Connection.java:942)
>
> The offense starts here (SQLException:103)
>
> if (!(this instanceof SQLWarning)) {
> if (DriverManager.getLogWriter() != null) {
> printStackTrace(DriverManager.getLogWriter());
> }
> }
>
> And then continues on to (Throwable:509)
>
> synchronized (s) {
> s.println(this);
> StackTraceElement[] trace = getOurStackTrace();
Which is fully:
public void printStackTrace(PrintWriter s) {
synchronized (s) {
s.println(this);
StackTraceElement[] trace = getOurStackTrace();
for (int i=0; i < trace.length; i++)
s.println("\tat " + trace[i]);
Throwable ourCause = getCause();
if (ourCause != null)
ourCause.printStackTraceAsCause(s, trace);
}
}
> It is the "s.println(this)" that is causing errors... All of this is
> happening in the constructor, so I guess that is why 'this' is null?
> I'm not 100% sure and pretty confused by it all :/
But 'this' is null.... which is very weird to me.
-pete