Note that there are some explanatory texts on larger screens.

plurals
  1. POOpen javamail folder failed
    primarykey
    data
    text
    <p>I developed an email website using javamail and apache-james and it works well mostly. But some user got Open failed Exception and cannot receive new mail. The code of receive email:</p> <pre><code>Session mailSession = Session.getInstance(System.getProperties(), null); mailSession.setDebug(false); Store store = null; Folder folder = null; //javax.mail.Folder try { store = mailSession.getStore(SParam.PROTOCOL); store.connect(Property.getPop3(), userName, password); logger.info("trying to receive emails from james server..."); folder = store.getFolder("INBOX"); try { if (!folder.isOpen()) { folder.open(Folder.READ_WRITE); //the point of throwing the exception } } catch (Exception e) { // TODO: handle exception e.printStackTrace(); } //receive email from james server. } catch (Exception e) { logger.error("Email Receive Error!" + StackTraceStr.st2str(e)); try { folder.close(true); } catch (Exception e2) { } } finally { try { store.close(); } catch (Exception cloex) { } } </code></pre> <p>In most cases, it works just fine. But still got the error occasionally:</p> <pre><code>javax.mail.MessagingException: Open failed; nested exception is: java.io.IOException: STAT command failed: null at com.sun.mail.pop3.POP3Folder.open(POP3Folder.java:228) at com.csc.mail.jsh.mail.core.ReceiveMail.receive(ReceiveMail.java:82) at com.csc.mail.jsh.mail.core.ReceiveMail.run(ReceiveMail.java:222) at java.lang.Thread.run(Thread.java:619) Caused by: java.io.IOException: STAT command failed: null at com.sun.mail.pop3.Protocol.stat(Protocol.java:366) at com.sun.mail.pop3.POP3Folder.open(POP3Folder.java:203) ... 3 more </code></pre> <p>Waiting your help and thanks a lot! <br/><br/> I debug and debug, finally found the STAT command failed! when STAT command got an error, there's an exception of james, but that makes no sence!</p> <pre><code>21/11/12 14:39:16 ERROR pop3server: Exception during connection from 127.0.0.1 (127.0.0.1) : An exception occurred getting a database connection. org.apache.avalon.framework.CascadingRuntimeException: An exception occurred getting a database connection. at org.apache.james.userrepository.AbstractJdbcUsersRepository.openConnection(AbstractJdbcUsersRepository.java:617) at org.apache.james.userrepository.AbstractJdbcUsersRepository.getUserByName(AbstractJdbcUsersRepository.java:521) at org.apache.james.userrepository.AbstractUsersRepository.test(AbstractUsersRepository.java:270) at org.apache.james.core.LocalUsersRepository.test(LocalUsersRepository.java:90) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.apache.avalon.phoenix.components.application.BlockInvocationHandler.invoke(BlockInvocationHandler.java:134) at $Proxy4.test(Unknown Source) at org.apache.james.pop3server.POP3Handler.doPASS(POP3Handler.java:537) at org.apache.james.pop3server.POP3Handler.parseCommand(POP3Handler.java:479) at org.apache.james.pop3server.POP3Handler.handleConnection(POP3Handler.java:277) at org.apache.james.util.connection.ServerConnection$ClientConnectionRunner.run(ServerConnection.java:432) at org.apache.excalibur.thread.impl.ExecutableRunnable.execute(ExecutableRunnable.java:55) at org.apache.excalibur.thread.impl.WorkerThread.run(WorkerThread.java:116) Caused by: java.sql.SQLException: Listener refused the connection with the following error: ORA-12519, TNS:no appropriate service handler found The Connection descriptor used by the client was: 192.168.250.23:1521:csmis at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112) at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261) at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387) at oracle.jdbc.driver.PhysicalConnection.&lt;init&gt;(PhysicalConnection.java:439) at oracle.jdbc.driver.T4CConnection.&lt;init&gt;(T4CConnection.java:165) at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801) at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(DriverConnectionFactory.java:37) at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:290) at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:771) at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:95) at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:540) at org.apache.james.util.dbcp.JdbcDataSource.getConnection(JdbcDataSource.java:220) at org.apache.james.userrepository.AbstractJdbcUsersRepository.openConnection(AbstractJdbcUsersRepository.java:614) ... 15 more </code></pre> <p>All application runs on the same server, and there's only a few users online(when I test it, only me use it). The error just appear occasionally. Why?</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload