Code Monkey home page Code Monkey logo

javapns's People

Watchers

 avatar

javapns's Issues

Client already exists

What steps will reproduce the problem?
1. I'm running this code in ActiveMatrix as a service
2. When i call the service it states that Client already exists.
3. It appears to be hanging onto the manager  instance. is there a way to 
destroy the instance  before it tires to create it?

What is the expected output? What do you see instead?
If I run the code as a stand alone program it works fine. 
What version of the product are you using? On what operating system?
Java APNS 1..5-v1.6.2



Please provide any additional information below.

Original issue reported on code.google.com by [email protected] on 29 Sep 2010 at 2:29

pto

What steps will reproduce the problem?
1.
2.
3.

What is the expected output? What do you see instead?


What version of the product are you using? On what operating system?


Please provide any additional information below.

Original issue reported on code.google.com by [email protected] on 26 Jan 2011 at 6:42

Given final block not properly padded exception on initializeConnection

What steps will reproduce the problem?

While trying to initializeConnection on the PushManager, I get the following 
exception:

java.io.IOException: failed to decrypt safe contents entry: 
javax.crypto.BadPaddingException: Given final block not properly padded
    at com.sun.net.ssl.internal.ssl.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1275)
    at java.security.KeyStore.load(KeyStore.java:1150)
    at javapns.back.SSLConnectionHelper.<init>(Unknown Source)
    at javapns.back.PushNotificationManager.initializeConnection(Unknown Source)

The password is correct as I've verified it with openssl.



What is the expected output? What do you see instead?

I would love to see the connection initialized :)


What version of the product are you using? On what operating system?

javapns 1.6.2 jdk1.5, windows XP, trying to run it from the JUnit test at this 
moment...

Original issue reported on code.google.com by [email protected] on 14 Jan 2011 at 4:07

Receiving error-response packet with enhanced notification format

I modified the code to send enhanced nofitication. As part of testing, I 
intentionally omitted device token in the raw packet, but still i did not 
receive any error packet back. I am using gateway.push.apple.com:2195.

Any thoughts and suggestions?

Many thanks.

Weiping

Original issue reported on code.google.com by [email protected] on 15 Apr 2011 at 7:54

Please help with code to send push to mutliple phones

Hi...I am able to send Push notifications using the following code template
Please suggest if there is better way to do this batch push using your APIs

//create payload

//open connection with apple server
pushManager.initializeConnection(.....);

for each iphone in database
           pushManager.addDevice("iPhone", device.getDeviceToken());
           client=pushManager.getDevice("iPhone");  
           pushManager.sendNotification(client, payLoad);
           pushManager.removeDevice("iPhone");
end for

//close connection in finally block

Original issue reported on code.google.com by [email protected] on 9 Dec 2010 at 3:28

FeedbackServiceManager.getDevice() needs to close socket in a finally block

I think it is good that there's no FeedbackServiceManager.close() method, and 
socket's life cycle is encapsulated in the class, if we are sure socket is 
closed when done.

In the current version, socket.close() is called at the end of the getDevice() 
method, but not in a finally block.  Any exception, such as NPE, thrown in the 
getDevice() method can cause memory leak which the caller will not be able to 
close.  

Would it be possible to move the close statement to a finally block?

Thanks,
Eric

Original issue reported on code.google.com by [email protected] on 7 Apr 2011 at 3:44

SSLConnectionHelper: different keystores for inputstream/path

The two constructors of SSLConnectionHelper (where the keystore is given as
path and inputstream respectively) call 

this.keyStore = KeyStore.getInstance(keystoreType, "BC");

and 

this.keyStore = KeyStore.getInstance(keystoreType);

which makes a difference depending on what providers are installed.

Original issue reported on code.google.com by [email protected] on 28 May 2010 at 2:28

Support for enhanced notification format

I do not see the support for enhanced format from the source code. Did I miss 
something? 

I guess I can modify getMessage() for enhanced format, but not sure how to 
handle No-Error or any timeout needed to retrieve the response.

Any sample code will be appreciated.

Weiping

Original issue reported on code.google.com by [email protected] on 12 Apr 2011 at 9:05

IBM KeyManagerFactory is not supported

What steps will reproduce the problem?
1.Run the working example on the IBM JVM

What is the expected output? What do you see instead?
SSL errors


What version of the product are you using? On what operating system?
Linux, latest version

Please provide any additional information below.
There's hardcode as I can see

        private static final String ALGORITHM = "sunx509";

Please make a parameter optionally so it could be changed for IBM JVM 
environment

Original issue reported on code.google.com by [email protected] on 14 Jan 2011 at 2:20

support for multiple applications

Whether the PushNotificationManager supports to handle multiple apps. If 
it is a singleton class i can have only one instance. So whenever i need 
to send message, i have to open connection because my application may vary 
for each message. But apple suggests that we should not open/close 
connections very often.

How can i maintain multiple connections ( for multiple applications) with 
pushnotificationmanager? can you please help me out on this ASAP?

Original issue reported on code.google.com by [email protected] on 21 May 2010 at 7:18

Get feedback information from sandbox enviorentment .

   Hi.
   I am writing  a programme to get feedback information from apns sandbox enviorent(feedback.sandbox.push.apple.com) with javapns. I had read  articles about feedback service here and there before I start this issue . Util now, I cann't get any feedback information.

    I hope  anyone can give an advice in detail. 

    Thanks a lot. 

Original issue reported on code.google.com by [email protected] on 22 Jul 2010 at 9:50

KeyStoreInputStream never close

In back.SSLCOnnectionHelper, the keystoreInputStream parameter of the 
constructor may be 
closed no ?

code concerned :

    public SSLConnectionHelper(String appleHost, int applePort, InputStream 
keyStoreInputStream, String keyStorePass, String keystoreType) throws 
KeyStoreException, 
CertificateException, NoSuchAlgorithmException, NoSuchProviderException, 
IOException {
        logger.debug( "Instantiate SSLConnectionHelper with Keystore as InputStream" );
        this.appleHost = appleHost;
        this.applePort = applePort;
        this.keyStorePass = keyStorePass;

        // Load the Keystore
        this.keyStore = KeyStore.getInstance(keystoreType, "BC");
        this.keyStore.load( keyStoreInputStream, this.keyStorePass.toCharArray() );
    }

Original issue reported on code.google.com by [email protected] on 23 Mar 2010 at 10:50

toDerInputStream rejects tag 66

What steps will reproduce the problem?
The error occured when I try to initialize the ssl connection :
1. pushManager.initializeConnection(PushNotification.HOST, 
PushNotification.PORT, PushNotification.CERTIFICATE, PushNotification.PASSWORD, 
SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);

I test also with the classical approach
2. KeyStore ks=KeyStore.getInstance("pkcs12");
3. ks.load(new FileInputStream("C:/key.pem"),"password".toCharArray());

Always I catch the same error :

java.io.IOException: toDerInputStream rejects tag type 66
    at sun.security.util.DerValue.toDerInputStream(Unknown Source)
    at com.sun.net.ssl.internal.pkcs12.PKCS12KeyStore.engineLoad(Unknown Source)
    at java.security.KeyStore.load(Unknown Source)

I test on Windows (Eclipse) and Debian (jboss server) ...

What to do please ?

Original issue reported on code.google.com by [email protected] on 25 Aug 2010 at 9:38

No support for feedback server

No support for detecting devices for which deliveries have repeatable failed.

Original issue reported on code.google.com by sam.cavenagh on 8 Jul 2009 at 11:08

Extensible DeviceFactory

It should be possible to design our own DeviceFactories (powered by JPA for 
example) by making the following small modifications in your code (there are 
other ways, but this one involves less code modifications and no design 
changes):

1) Add a static setInstance(DeviceFactory) method to the DeviceFactory class, 
to allow us to plug our own implementation of DeviceFactory.

2) Make the DeviceFactory constructor public.  There is no reason here to make 
it private, and this is preventing us from extending the class.  The same 
comment goes for the PushNotificationManager, whose private constructor is 
preventing us from extending the class.


With these two small changes, we'll be able to build our own custom 
DeviceFactory, register it by calling DeviceFactory.setInstance(myFactory), and 
automatically get our custom-stored devices to the PushNotificationProvider.

Thank you very much for this very helpful library!

SP

Original issue reported on code.google.com by [email protected] on 19 Oct 2010 at 8:23

sun.security.validator.ValidatorException: PKIX path building failed (with production server)

What steps will reproduce the problem?
1.change the host from gateway.sandbox.push.apple.com
to gateway.push.apple.com
2. Use the production certificate generated by apple

What is the expected output? What do you see instead?
A successor connection initialized but instead i am seeing 
javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: 
PKIX path building failed: 
sun.security.provider.certpath.SunCertPathBuilderException: unable to find 
valid certification path to requested target


What version of the product are you using? On what operating system?
Latest, on Linux


Please provide any additional information below.

Original issue reported on code.google.com by [email protected] on 24 Feb 2011 at 4:24

java.net.SocketException: Bad address: connect

pushManager.initializeConnection("gateway.sandbox.push.apple.com", 2195, 
certificatePath, certificatePassword, SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);

when these code run, java.net.SocketEcetption happened.
until oct. these code wort well. but recently make an error 
why????

Original issue reported on code.google.com by [email protected] on 4 Oct 2010 at 9:52

FeedBackService is not working

Hello,

Using 1.6 version of javapns, the feedback service is not working and always 
return 0 device 
without error.

If i call the feedback service using the method in the following link, the 
feedback service works 
properly :
http://code.google.com/p/javapns/issues/detail?id=5&can=1

Here is a snippet of my code :
List<Device> device = 
FeedbackServiceManager.getInstance().getDevices("feedback.push.apple.com", 
2196, 
"/ValidPath/PushCertificatsProduction.p12", "myPassword", 
SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);

System.out.println("device count = "+device.size());


Note that i have no problem to send notification with this p12 certificate. 
Only the service 
feedback is not working.


Original issue reported on code.google.com by [email protected] on 22 Apr 2010 at 8:24

Contact

There is no way to contact you guys. How can I join this project. 

Original issue reported on code.google.com by [email protected] on 2 Jul 2009 at 5:05

Broken Pipe every 100-300 messages

I'm running send notification in a tight loop to try and benchmark the 
performance/throughput.  I'm 
seeing a broken pipe exception fairly often.  This limits my throughput to 
around 100-300 
messages per second, with significant overhead in re-establishing the 
connection.  I've enabled 
TCP keepalive, but this doesn't seem to have effected performance at all.

Original issue reported on code.google.com by [email protected] on 1 Dec 2009 at 4:38

Unable to connect to the APNS.

What steps will reproduce the problem?
1. Executing the same code from the Java environment
2.
3.

What is the expected output? What do you see instead?
Connected to the APNS

What version of the product are you using? On what operating system?
The current version of the product on Windows XP operating system

Please provide any additional information below.
Have been receiving the following error:
java.net.ConnectException: Connection timed out: connect
        at java.net.PlainSocketImpl.socketConnect(Native Method)
        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:333)
        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:195)
        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:182)
        at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366)
        at java.net.Socket.connect(Socket.java:520)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.connect(SSLSocketImpl.java:545)
        at com.sun.net.ssl.internal.ssl.SSLSocketImpl.<init>(SSLSocketImpl.java:348)
        at com.sun.net.ssl.internal.ssl.SSLSocketFactoryImpl.createSocket(SSLSocketFactoryImpl.java:69)
        at javapns.back.SSLConnectionHelper.getSSLSocket(Unknown Source)
        at javapns.back.PushNotificationManager.initializeConnection(Unknown Source)
        at com.homedepot.pushnotif.PushServlet.doPost(PushServlet.java:79)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
        at com.homedepot.ta.aa.dao.catalina.THDDAOValve.invoke(THDDAOValve.java:811)
        at com.homedepot.ta.aa.catalina.realm.THDSingleSignOn.invoke(THDSingleSignOn.java:473)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
        at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
        at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
        at java.lang.Thread.run(Thread.java:595)

Original issue reported on code.google.com by [email protected] on 9 May 2011 at 1:37

java.net.ConnectException: Connection timed out: connect

Hi,

I am using javapns-jdk1.5-v1.6.2.jar on windows 7, to create a connection to 
apple NS
                PushNotificationManager pushManager = null;
            // Setup up a simple message
            PayLoad aPayload = new PayLoad();
            aPayload.addBadge(BADGE);
            aPayload.addAlert(message);    
            aPayload.addSound("default");

            LOG.info("Payload setup successfull. " + aPayload);

            // Get PushNotification Instance
            pushManager = PushNotificationManager.getInstance(); 

            // Link iPhone's UDID (64-char device token) to a stringName
            pushManager.addDevice("iphone", iPhoneId);
            LOG.info("iPhone UDID taken.");

            LOG.info("Token: " + pushManager.getDevice("iphone").getToken());

            // Get iPhone client
            Device client = pushManager.getDevice("iphone");
            LOG.info("Client setup successfull.");

            // Initialize connection
            pushManager.setProxy("p-host", "p-port"); // 
            pushManager.initializeConnection(HOST, PORT, inputStream, passwd, SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);
            LOG.info("Connection initialized...");

            // Send message
            pushManager.sendNotification(client, aPayload);
            LOG.info("Message sent!");

The code try's to connect (pushManager.initializeConnection(..)), it  throws a 
Connection refused: connect, exception

I have checked my proxy settings and thy are correct, however when i listen on 
the proxy ports the executing code does not connect to the proxy server.

Any ideas?

Thanks

Original issue reported on code.google.com by [email protected] on 14 Sep 2010 at 10:38

exception : javax.net.ssl.SSLHandshakeException: Remote host closed connection during handshake

What steps will reproduce the problem?
1.public class IphoneNotificationManager {

    public static void sentMessage(NotificationDetail notificationDetail) {
        PayLoad aPayload = payLoadValueOf(notificationDetail);

        PushNotificationManager pushManager = PushNotificationManager
                .getInstance();
        // Get iPhone client
        try {
            pushManager.addDevice(notificationDetail.getDeviceId(),
                    notificationDetail.getUuid());

            Device client = pushManager.getDevice(notificationDetail
                    .getDeviceId());
            // Send message
            pushManager.sendNotification(client, aPayload);

            System.out.println("Message sent! " + aPayload);
            System.out.println("# of attempts: "
                    + pushManager.getRetryAttempts());
            pushManager.removeDevice(notificationDetail.getDeviceId());
        } catch (Exception e) {
            System.out.println("exception : " + e);
            e.printStackTrace();
        }
    }

    public static void initializeConnection() {
        PushNotificationManager pushManager = PushNotificationManager
                .getInstance();
        // Initialize connection
        try {
            pushManager.initializeConnection(ApplicationProperties.APPLE_HOST,
                    ApplicationProperties.APPLE_PORT,
                    ApplicationProperties.CERTIFICATE_FILE_PATH,
                    ApplicationProperties.APPLE_PWD,
                    SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);
            System.out.println("connection establishd to APNS");
        } catch (Exception e) {
            System.out.println("not able to initialize connection to APNS");
        }
    }

    public static void stopConnection() {
        PushNotificationManager pushManager = PushNotificationManager
                .getInstance();
        try {
            pushManager.stopConnection();
            System.out.println("connection stopped succesfully");
        } catch (IOException e) {
            System.out.println("not able to stop connection to APNS");
        }
    }

    private static PayLoad payLoadValueOf(NotificationDetail notificationDetail) {
        PayLoad aPayload = null;
        try {
            aPayload = new PayLoad();
            aPayload.addAlert(notificationDetail.getMatchbetween() + " at "
                    + notificationDetail.getMatchdate() + " on "
                    + notificationDetail.getMatchtime());
            aPayload.addSound("default");

        } catch (JSONException e) {
            System.out.println("Exceptio : " + e);
        }
        return aPayload;
    }

    public static void main(String args[]) {
        NotificationDetail notificationDetail = new NotificationDetail();
        notificationDetail
                .setUuid("ebbf8c927bfd6754348fb7ccf17cbe73f2e4741fc10f08fc2316ae877867eb80");
        notificationDetail.setMatchbetween("abc vs axy");
        notificationDetail.setDeviceId("1");
        notificationDetail.setMatchdate("today ");
        notificationDetail.setMatchtime("12:30");
        initializeConnection();
        IphoneNotificationManager.sentMessage(notificationDetail);
        stopConnection();
    }

}

2. Working fine on Window 7 but not working in linux server.

What is the expected output? What do you see instead?
Getting an exception 
exception : javax.net.ssl.SSLHandshakeException: Remote host closed connection 
during handshake
javax.net.ssl.SSLHandshakeException: Remote host closed connection during 
handshake
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:801)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1089)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:618)
    at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59)
    at java.io.OutputStream.write(OutputStream.java:58)
    at javapns.back.PushNotificationManager.sendNotification(Unknown Source)
    at com.src.IphoneNotificationManager.sentMessage(IphoneNotificationManager.java:29)
    at com.src.PushJob.execute(PushJob.java:20)
    at org.quartz.core.JobRunShell.run(JobRunShell.java:216)
    at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549)
Caused by: java.io.EOFException: SSL peer shut down incorrectly
    at com.sun.net.ssl.internal.ssl.InputRecord.read(InputRecord.java:333)
    at com.sun.net.ssl.internal.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:782)
    ... 9 more

What version of the product are you using? On what operating system?
Using 
bcprov-jdk15-145.jar
javapns-jdk1.5-v1.6.2.jar

Please provide any additional information below.

Original issue reported on code.google.com by [email protected] on 14 Oct 2010 at 8:32

Null pointer exception when sending message: server on linux environment

If I use this code on a Mac, it works fine. But, if my server is running on a 
linux environment, it throws a null pointer exception the first time I try to 
send the message:
java.lang.NullPointerException
    at javapns.back.PushNotificationManager.sendNotification(Unknown Source)

After I get this exception, if I try to send a message again, I get the 
following error:
javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: 
java.security.InvalidAlgorithmParameterException: the trustAnchors parameter 
must be non-empty
    at sun.security.ssl.Alerts.getSSLException(Alerts.java:208)
    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1611)
    at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1574)
    at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1557)
    at sun.security.ssl.SSLSocketImpl.handleException(SSLSocketImpl.java:1483)
    at sun.security.ssl.AppOutputStream.write(AppOutputStream.java:83)
    at java.io.OutputStream.write(OutputStream.java:75)
    at javapns.back.PushNotificationManager.sendNotification(Unknown Source)


Any pointers? Do I need to convert the certificate from the P12 format to some 
other format in linux?

Thanks,
Gautam 

Original issue reported on code.google.com by [email protected] on 29 Sep 2010 at 9:49

How can we check the uninstalled status?

Could you make a simple method which only check a clientToken based on feedback 
please?

BTW, APNS feedback returns device tokens if the notification delivery has 
failed. This doesn't mean 
that the application has been uninstalled from the device, it can just be that 
the user doesn't have 
persistent WiFi? connection at the moment. How can we check the uninstalled 
status?

Thanks

Frank

Original issue reported on code.google.com by [email protected] on 27 Apr 2010 at 4:24

library does not work with IBM JRE because of "Sunx509" SSL Algorithm

When Using an IBM JRE, we get an exception : 
java.security.NoSuchAlgorithmException: sunx509 TrustManagerFactory not 
available
        at sun.security.jca.GetInstance.getInstance(GetInstance.java:158)
        at javax.net.ssl.TrustManagerFactory.getInstance(TrustManagerFactory.java:20)
        at javapns.back.SSLConnectionHelper.getFeedbackSSLSocketFactory(Unknown Source)
        at javapns.back.SSLConnectionHelper.getFeedbackSSLSocket(Unknown Source)
        at javapns.back.FeedbackServiceManager.getDevices(Unknown Source)

Problem seems to be in SSLConnectionHelper :
    private static final String ALGORITHM = "sunx509";

This Algorithm is only present in Sun JRE.

If possible, could you please implement a more configurable way to provide the 
algorithm (see  
http://download.oracle.com/javase/1.5.0/docs/api/javax/net/ssl/KeyManagerFactory
.html) ?

For example :
    private static final String ALGORITHM = ((Security.getProperty("ssl.KeyManagerFactory.algorithm") == null)? "sunx509" : Security.getProperty("ssl.KeyManagerFactory.algorithm"));

Thanks

Original issue reported on code.google.com by [email protected] on 19 Jan 2011 at 2:57

Sending Notifications in bulk

I'm trying to send push notifications in bulk, around 800 at a time. But none 
of the push notifications are being sent.I can successfully send push for 
around 100 devices at a time but not able to send to devices more than 200 at 
once.
I am maintaining a persistent connection with APNS.

Did anyone face this issue before? what is the solution to this problem?


Original issue reported on code.google.com by [email protected] on 8 Jul 2010 at 4:14

Notification send without receive nothing

Hello, i'm writing from Rome and my english is poor but i try to explain my 
problem:

S.O Windows XP SP3
    Jdk 1.6.0_20
    javapns-jdk16-162.jar

I simply copy and paste your example from web and replace the token with mine.
I've enabled all log and as you can see i can send a message through ssl but on 
my device nothin appears.

Thanks in advance for your help.

Original issue reported on code.google.com by [email protected] on 5 Oct 2010 at 8:55

Attachments:

Providing a keystore as InputStream

Because J2EE applications do not allow normal file access I need the keystore 
to be retrieved from 
my resources. To do this I have made some changes to the SSLConnectionHelper 
and 
PushNotificationManager to accept InputStream's. Are you interested in these 
changes?

Original issue reported on code.google.com by robin%[email protected] on 27 Nov 2009 at 10:28

Proxy tunnelling is not supported

I'm using javapns from behind a proxy.  When attempting to send a push 
notification to gateway.sandbox.push.apple.com it would come back with a 
java.net.UknownHostException.

This was due to my proxy responding with a HTTP 1.1 header which the JSSE does 
not support when using SecureSocket.

To fix the issue I had to implement proxy tunneling within the 
javapns.back.SSLConnectionHelper class.  (see 
http://www.javaworld.com/javaworld/javatips/jw-javatip111.html?page=2)  It 
looks like this was previously supported was back in Feb 2010 in rev 24 of 
SSLConnectionHelper.

The changes I made to the source to support proxy tunneling are attached.

Original issue reported on code.google.com by [email protected] on 20 Apr 2011 at 8:13

Attachments:

First notification do not come to device

I've found a problem- when my script is running (and keeping connection with 
apns server) for a several hours without sending any notification, when I do 
first sendNotification - it says "Attempt failed... trying 
again" (PushNotificationManager.java line 152), and then send notification 
(second attempt). But problem is what this notification DO NOT get to 
device. Second and others- all ok. 

Original issue reported on code.google.com by [email protected] on 19 May 2010 at 9:04

Test the limit of a PayLoad

A Payload is limited to 256 Bytes.

Test if a created Payload is below this limit before sending it, if not
throw an exception.

Original issue reported on code.google.com by [email protected] on 30 Jul 2009 at 9:55

Error with sending push notifications in a loop

I keep getting this error when ever i send notifications in a loop. It sends 
notifications for few devices in the beginning and shows this error later for 
the rest.

java.io.IOException: DerInputStream.getLength(): lengthTag=127, too big.

Thanks,
Sudheer

Original issue reported on code.google.com by [email protected] on 12 Jul 2010 at 6:19

Add a build script for the project

The repository is missing a build script.  Attached is my build.xml for it.

I also recommend that you delete doc folder from the repository as it is a 
generated folder and will 
cause big diffs in the future.

Original issue reported on code.google.com by msaeed43 on 28 Aug 2009 at 7:50

Attachments:

allow pooling of connections

this is an enhancement request.

it would be nice if we could pool instances of PushNotificationManager...
it likely the case that sending all traffic through a single
PushNotificationManager socket would be problematic under any kind of load.

i'll be changing PushNotificationManager's constructor and extending it to
support apache commons pooling: 
http://commons.apache.org/pool/

when i get that going, i'll attach a patch/src here

thanks,

john

Original issue reported on code.google.com by [email protected] on 2 Oct 2009 at 6:52

Is FeedbackServiceManager working ?

Hello,

My question is simple, is FeedbackServiceManager class working ?

I use PushNotificationManager class to send my notifications and it works 
great, but if i try to 
read data from the apple feedback server, the server send me back :

Exception in thread "main" javax.net.ssl.SSLHandshakeException: 
sun.security.validator.ValidatorException: No trusted certificate found

The cercificate seems to be good because i can send my notifications with it...

Here is a snippet of the code :

LinkedList<Device> liste = 
FeedbackServiceManager.getInstance().getDevices("feedback.sandbox.push.apple.com
", 2196, 
"PushCertificats.p12", "myPassword", SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);

        for(int i=0; i<liste.size(); i++) {
            System.out.println(liste.get(i).getToken()+" "+liste.get(i).getLastRegister());
        }

Original issue reported on code.google.com by [email protected] on 14 Aug 2009 at 2:16

javax.crypto.BadPaddingException: Given final block not properly padded

java.io.IOException: failed to decrypt safe contents entry: 
javax.crypto.BadPaddingException: Given final block not properly padded
    at com.sun.net.ssl.internal.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1277)
    at java.security.KeyStore.load(KeyStore.java:1185)
    at javapns.back.SSLConnectionHelper.<init>(Unknown Source)
    at javapns.back.PushNotificationManager.initializeConnection(Unknown Source)
    at cn.knet.wlb2b.ws.PushNotification.main(PushNotification.java:44)
Caused by: javax.crypto.BadPaddingException: Given final block not properly 
padded
    at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
    at com.sun.crypto.provider.SunJCE_f.b(DashoA13*..)
    at com.sun.crypto.provider.PKCS12PBECipherCore.b(DashoA13*..)
    at com.sun.crypto.provider.PKCS12PBECipherCore$PBEWithSHA1AndRC2_40.engineDoFinal(DashoA13*..)
    at javax.crypto.Cipher.doFinal(DashoA13*..)
    at com.sun.net.ssl.internal.pkcs12.PKCS12KeyStore.engineLoad(PKCS12KeyStore.java:1274)
    ... 4 more

Original issue reported on code.google.com by [email protected] on 24 May 2011 at 6:59

No Support for Payload Content

The APNS allows custom data to be delivered to the client app as part of
the notification.  The PayLoad class currently doesn't provide a way to
specify a payload.

Original issue reported on code.google.com by sam.cavenagh on 8 Jul 2009 at 11:14

javapns feedback is not working(wrong source code)

What steps will reproduce the problem?
// Load the Keystore
KeyStore ks = KeyStore.getInstance(keystoreType);
ks.load(this.keyStoreStream, this.keyStorePass.toCharArray());
// Get a KeyManager and initialize it 
KeyManagerFactory kmf = KeyManagerFactory.getInstance(ALGORITHM);
kmf.init(ks, this.keyStorePass.toCharArray());
// Get a TrustManagerFactory and init with KeyStore
TrustManager[] tms = new TrustManager[]{new X509TrustManager() {
    public void checkClientTrusted(
    java.security.cert.X509Certificate[] chain, String authType)
    throws CertificateException {}

    public void checkServerTrusted(
    java.security.cert.X509Certificate[] chain, String authType)
    throws CertificateException {}
    public java.security.cert.X509Certificate[] 
        getAcceptedIssuers() {return null;}
}};
// Get the SSLContext to help create SSLSocketFactory           
SSLContext sslc = SSLContext.getInstance(PROTOCOL);
sslc.init(kmf.getKeyManagers(), tms, null);

above code working propery

Original issue reported on code.google.com by [email protected] on 25 Jan 2010 at 2:30

PushNotificationManager a bit restrictive

PushNotificationManager requires the keystore to be a file to be accessed by 
FileInputStream.  This 
limits how the certificate is bundled with the project.

It will be nice to relax it to be accept InputStream as well.  Attached is my 
patch.

Also, I recommend that you make SSLConnectionHelper be a packaged scope.  While 
it is helpful as 
an independent class to get SSLConnection, no other class in the project can 
take an instance of it 
as a parameter.  Currently it is used as a holder to keystore types.


Original issue reported on code.google.com by msaeed43 on 28 Aug 2009 at 8:24

Attachments:

Please help to locate javapns in Maven


What steps will reproduce the problem?
1. I am trying to add javapns jar file in my maven based project.
2. but, Maven is not able to find out this jar.



What version of the product are you using? On what operating system?
I am using Eclipse and M2_ plugin.

Please provide any additional information below.

Original issue reported on code.google.com by [email protected] on 9 Dec 2010 at 11:30

  • Merged into: #56

java.lang.NoClassDefFoundError: org.bouncycastle.jce.provider.WrapCipherSpi

Hi guys,

when I try to run the code closely modeled after the sample use code snippet 
that's posted on the wiki I get the following error: 
java.lang.NoClassDefFoundError: org.bouncycastle.jce.provider.WrapCipherSpi

It sounds like I'm not linking the bouncy house library properly, but I'm not 
very sure what I'm doing wrong. Anyone have any idea what I'm doing wrong. The 
code is posted below.

Thank you.

vova

import javapns.back.PushNotificationManager;
import javapns.data.PayLoad;
import javapns.data.Device;
import javapns.back.SSLConnectionHelper;

class send_apns{
    // APN Server Host & Port
    private static final String HOST = "gateway.sandbox.push.apple.com";
    private static final int PORT = 2195;

    // Badge
    private static final int BADGE = 66; 

    // iPhone's UDID (64-char device token)
    private static String iPhoneId = "22017e6cad7..........4097b6d";
    private static String certificate = "/root/cgi/APNS/push_certificate.p12";
    private static String passwd = "*****";

    public static void main(String []args){
        try{
            // set up a simple payload
            PayLoad aPayload = new PayLoad();
            aPayload.addBadge(BADGE);
            System.out.println("Payload setup successfull.");

            System.out.println(aPayload);

            // get PushNotification Instance
            PushNotificationManager pushManager = PushNotificationManager.getInstance();

            // Link iPhone's UDID (64-char device token) to a stringName
            pushManager.addDevice("iPhone", iPhoneId);
            System.out.println("iPhone UDID taken.");

            System.out.println("Token: " + pushManager.getDevice("iPhone").getToken());

            // Get iPhone client
            Device client = pushManager.getDevice("iPhone");
            System.out.println("Client setup successfull.");


            // Initialize connection            pushManager.initializeConnection(HOST, PORT, certificate, passwd, SSLConnectionHelper.KEYSTORE_TYPE_PKCS12);            pushManager.sendNotification(client, aPayload);
            System.out.println("Message sent!");

            System.out.println("# of attempts: " + pushManager.getRetryAttempts());
            pushManager.stopConnection();

            System.out.println("done");
        }       
        catch(Exception e){
            e.printStackTrace();
        }       
    }       
}


Original issue reported on code.google.com by [email protected] on 12 Mar 2011 at 10:30

java.net.ConnectException: Connection timed out: connect

What steps will reproduce the problem?

What is the expected output? What do you see instead?
I am waiting to be connected to APNS but after 8-9 seconds I get
java.net.ConnectException: Connection timed out: connect execption.

What version of the product are you using? On what operating system?
javapns-jdk16-161.jar on Windows XP...I am running the provider or client
from eclipse

Please provide any additional information below.

import javapns.back.PushNotificationManager; 
 import javapns.back.SSLConnectionHelper; 
 import javapns.data.Device; 
import javapns.data.PayLoad; 
 public class Test { 
     // APNs Server Host & port 
     private static final String HOST = "gateway.sandbox.push.apple.com"; 
     private static final int PORT = 2195; 
     // Badge 
     private static final int BADGE = 66; 
     // iPhone's UDID (64-char device token) 
     private static String iPhoneId =
"f4201f5d8278fe39545349d0868a24a3b60ed732"; 
     private static String certificate =
"D:/certificate/NewAPNSGVDS_Certificate.p12"; 

    private static String passwd = "satyam123"; 
 public static void main( String[] args ) throws Exception
{System.out.println( "Setting up Push notification" ); 
        try { 

             // Setup up a simple message 
             PayLoad aPayload = new PayLoad(); 
             aPayload.addBadge( BADGE ); 
             aPayload.addAlert("Hello! you have a new OVD Email");
             System.out.println( "Payload setup successfull." ); 
             System.out.println ( aPayload ); 
             // Get PushNotification Instance 
             PushNotificationManager pushManager =
PushNotificationManager.getInstance(); 
             // Link iPhone's UDID (64-char device token) to a stringName 
             pushManager.addDevice("iPhone", iPhoneId); 
             System.out.println( "iPhone UDID taken." ); 
             System.out.println( "Token: " + pushManager.getDevice(
"iPhone" ).getToken() ); 
             // Get iPhone client 
             Device client = pushManager.getDevice( "iPhone" ); 
             System.out.println( "Client setup successfull." ); 
             // Initialize connection
             pushManager.initializeConnection( HOST, PORT, certificate,
passwd, SSLConnectionHelper.KEYSTORE_TYPE_PKCS12); 
             System.out.println( "Connection initialized..." ); 
             // Send message 
             pushManager.sendNotification( client, aPayload ); 
             System.out.println( "Message sent!" ); 
             System.out.println( "# of attempts: " +
pushManager.getRetryAttempts() ); 
             pushManager.stopConnection(); 
             System.out.println( "done" ); 
         } catch (Exception e) { 
             e.printStackTrace(); 
         } 
     } 
 }

Original issue reported on code.google.com by [email protected] on 11 May 2010 at 6:21

Blank keystore password causes exception

What steps will reproduce the problem?
1. Execute sendEvents with pushManager initialized with "" or null as the 
password
2. You get:

- for "" - java.io.IOException: failed to decrypt safe contents entry: 
java.lang.ArithmeticException: / by zero

- for null - java.lang.NullPointerException
    at javapns.back.SSLConnectionHelper.<init>(Unknown Source)

What is the expected output? What do you see instead?
I hope to connect to APNS with a certificate that has no password.

What version of the product are you using? On what operating system?
v1.6.2 JDK 1.5, Windows XP

Please provide any additional information below.

Original issue reported on code.google.com by [email protected] on 7 Jan 2011 at 3:03

SSLConnectionHelper NullPointerException using FeedbackServiceManager

What steps will reproduce the problem?
1. Start Glassfish v3 server
2. Glassfish server is running a timed service via JBoss SEAM
3. FeedbackService is invoked and tries to call out to Apple.

What is the expected output? What do you see instead?
Expect the FeedbackServiceManager to fetch devices list from Apple but get an 
exception instead.

What version of the product are you using? On what operating system?
JDK 6 API 1.6.3

Please provide any additional information below.
When the FeedbackServiceManager is trying to get devices, an exception is 
thrown.

This is running in Glassfish v3 on a Mac running OS X Snow Leopard.

Getting this exception:
Caused by: java.lang.ExceptionInInitializerError
    at javapns.back.FeedbackServiceManager.getDevices(Unknown Source)
    at me.loyal2.service.apns.FeedbackService.refreshIphones(FeedbackService.java:74)
    ... 53 more
Caused by: java.lang.NullPointerException
    at sun.security.jca.ProviderList.getIndex(ProviderList.java:246)
    at sun.security.jca.ProviderList.getProviderConfig(ProviderList.java:229)
    at sun.security.jca.ProviderList.getProvider(ProviderList.java:235)
    at sun.security.jca.ProviderList.insertAt(ProviderList.java:79)
    at java.security.Security.insertProviderAt(Security.java:326)
    at java.security.Security.addProvider(Security.java:372)
    at javapns.back.SSLConnectionHelper.<clinit>(Unknown Source)
    ... 55 more

Original issue reported on code.google.com by [email protected] on 23 Dec 2010 at 3:12

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.