Probably this is because you should "never" try to use "select into" while a transaction(select @@transaction) is open, call it from any platform Java or any other application.
I believe solution given by @swat is pretty much you should use rather than SET CHAINED OFF. There could be impact due to this as in your code as I understand SET CHAINED was ON for some reason. So there might not be any code in SP when there is need to open a transaction but you have not as SET CHAINED is ON.
You can play with this in Sybase -
create proc testproc
as
select * into #temp from table
return
go
begin tran
exec test_proc
commit tran
begin tran
exec test_proc
rollback tran
(I do not have my Sybase environment with me now so cannot check it for myself. but this could definitely help you understand the cause)