If you look at
org.apache.james.mailrepository.JDBCMailRepository.store(MailImpl), you will
find a series of PreparedStatement.setX statements. There is only one entry
that is of a non-text type, and that is field 9. The message body is field
10, and is set directly from a stream. If there were an off-by-one error in
the JDBC driver (0 based instead of 1 based), it might account for that
problem. Do you have the source for their JDBC driver to check it?
I see that you added a new create table statement to sqlResources.xml for
PostgreSQL:
CREATE TABLE ${table} (
message_name varchar (200) NOT NULL,
repository_name varchar (255) NOT NULL,
message_state varchar (30) NOT NULL ,
error_message varchar (1000) NULL ,
sender varchar (255) NULL ,
recipients text NOT NULL ,
remote_host varchar (255) NOT NULL ,
remote_addr varchar (20) NOT NULL ,
message_body bytea NOT NULL ,
last_updated date NOT NULL,
CONSTRAINT PK_${table} PRIMARY KEY
(
message_name,
repository_name
)
)
I don't spot anything wrong, but then again, I don't use PostgreSQL. You
might also take a look at InsertMessageSQL, which is where the field names
and order are laid out.
--- Noel
-----Original Message-----
From: Miroslav Nachev [mailto:[EMAIL PROTECTED]]
Sent: Friday, December 20, 2002 5:29
To: [EMAIL PROTECTED]; [EMAIL PROTECTED]
Subject: James 2.1 & PostgreSQL Store Mail Repository
Hi,
We try to start James 2.1 with PostgreSQL but we have some problems
with storing of mails in the database. The error is very strange
because the field "message_body" is from type "bytea" (long binary
data) but the error is:
java.lang.RuntimeException: Exception caught while storing mail
Container:
java.sql.SQLException: ERROR:
column "message_body" is of type 'bytea' but expression is of
type 'integer'
You will need to rewrite or cast the expression
Regards,
Miro.
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>