gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r21966 - in gnunet-java: . src/org/gnunet/statistics src/or


From: gnunet
Subject: [GNUnet-SVN] r21966 - in gnunet-java: . src/org/gnunet/statistics src/org/gnunet/util test/org/gnunet/util
Date: Wed, 13 Jun 2012 15:56:49 +0200

Author: dold
Date: 2012-06-13 15:56:49 +0200 (Wed, 13 Jun 2012)
New Revision: 21966

Modified:
   gnunet-java/ISSUES
   gnunet-java/src/org/gnunet/statistics/Statistics.java
   gnunet-java/src/org/gnunet/util/Client.java
   gnunet-java/src/org/gnunet/util/Connection.java
   gnunet-java/src/org/gnunet/util/RequestQueue.java
   gnunet-java/src/org/gnunet/util/Server.java
   gnunet-java/test/org/gnunet/util/ResolverTest.java
Log:
made some callbacks exception-safe

Modified: gnunet-java/ISSUES
===================================================================
--- gnunet-java/ISSUES  2012-06-13 13:00:13 UTC (rev 21965)
+++ gnunet-java/ISSUES  2012-06-13 13:56:49 UTC (rev 21966)
@@ -140,6 +140,8 @@
 * test now run on the cobertura account :)
  * see https://gnunet.org/cobertura/
 
+* needed for testing the server: getting an unused port with java
+
 gnunet needs to compiled with --disable-nls to work on the cobertura accout
 
 

Modified: gnunet-java/src/org/gnunet/statistics/Statistics.java
===================================================================
--- gnunet-java/src/org/gnunet/statistics/Statistics.java       2012-06-13 
13:00:13 UTC (rev 21965)
+++ gnunet-java/src/org/gnunet/statistics/Statistics.java       2012-06-13 
13:56:49 UTC (rev 21966)
@@ -171,7 +171,6 @@
         }
     }
 
-
     private static class TESTRequest extends RequestQueue.Request {
         private AbsoluteTime deadline;
 

Modified: gnunet-java/src/org/gnunet/util/Client.java
===================================================================
--- gnunet-java/src/org/gnunet/util/Client.java 2012-06-13 13:00:13 UTC (rev 
21965)
+++ gnunet-java/src/org/gnunet/util/Client.java 2012-06-13 13:56:49 UTC (rev 
21966)
@@ -140,26 +140,7 @@
         }
     }
 
-    /**
-     * Send a message to the service and wait for a reply from the service.
-     */
-    public void transmitAndGetResponse(final GnunetMessage.Body message, final 
RelativeTime timeout,
-                                       final boolean autoRetry,
-                                       final MessageReceiver receiver) {
-        notifyTransmitReady(timeout, autoRetry, 0, new MessageTransmitter() {
-            @Override
-            public void transmit(Connection.MessageSink sink) {
-                sink.send(message);
-                receive(timeout, receiver);
-            }
 
-            @Override
-            public void handleError() {
-                receiver.handleError();
-            }
-        });
-    }
-
     public void reconnect() {
         if (connection != null) {
             connection.disconnect();

Modified: gnunet-java/src/org/gnunet/util/Connection.java
===================================================================
--- gnunet-java/src/org/gnunet/util/Connection.java     2012-06-13 13:00:13 UTC 
(rev 21965)
+++ gnunet-java/src/org/gnunet/util/Connection.java     2012-06-13 13:56:49 UTC 
(rev 21966)
@@ -94,7 +94,7 @@
      * transmitting larger messages.
      */
     private ByteBuffer transmitBuffer = 
ByteBuffer.allocate(GnunetMessage.Header.SIZE);
-    private boolean disconnected=false;
+    private boolean disconnected = false;
 
 
     private class AddressProbe {
@@ -162,6 +162,8 @@
             } else {
                 UnknownMessageBody b = new UnknownMessageBody();
                 b.id = msgh.messageType;
+
+                // may throw exception, doesn't matter as it's the last call
                 receiver.process(b);
             }
         }
@@ -180,14 +182,20 @@
                                 recvBuffer.position());
                         connectionChannel.close();
                         connectionChannel = null;
-                        receiver.handleError();
-                        return;
+                        try {
+                            receiver.handleError();
+                        } finally {
+                            return;
+                        }
                     }
                     logger.debug(String.format("read %s bytes", n));
                 } catch (IOException e) {
                     logger.error("read failed:", e);
-                    receiver.handleError();
-                    return;
+                    try {
+                        receiver.handleError();
+                    } finally {
+                        return;
+                    }
                 }
                 if (recvBuffer.remaining() == 0) {
                     if (msgh != null) {
@@ -500,7 +508,6 @@
     /**
      * Call notify once the we are ready to transmit data.
      *
-     *
      * @param size        number of bytes to send
      * @param timeout     after how long should we give up (and call 
transmitter.transmit(null))
      * @param transmitter the MessageTransmitter object to call once the 
client is ready to transmit or
@@ -549,7 +556,7 @@
         }
         disconnected = true;
 
-        logger.debug(""+this+".disconnect()");
+        logger.debug("" + this + ".disconnect()");
         if (nextTransmitHelper != null) {
             nextTransmitHelper.cancel();
             nextTransmitHelper = null;

Modified: gnunet-java/src/org/gnunet/util/RequestQueue.java
===================================================================
--- gnunet-java/src/org/gnunet/util/RequestQueue.java   2012-06-13 13:00:13 UTC 
(rev 21965)
+++ gnunet-java/src/org/gnunet/util/RequestQueue.java   2012-06-13 13:56:49 UTC 
(rev 21966)
@@ -126,10 +126,12 @@
             public void transmit(Connection.MessageSink sink) {
                 currentTransmit = null;
 
-                request.transmit(sink);
-
-                handleReceive();
-                handleNextTransmit();
+                try {
+                    request.transmit(sink);
+                } finally {
+                    handleReceive();
+                    handleNextTransmit();
+                }
             }
 
             @Override
@@ -148,10 +150,12 @@
             public void process(GnunetMessage.Body msg) {
                 currentReceive = null;
 
-                receiver.process(msg);
-
-                handleNextTransmit();
-                handleReceive();
+                try {
+                    receiver.process(msg);
+                } finally {
+                    handleNextTransmit();
+                    handleReceive();
+                }
             }
 
             @Override

Modified: gnunet-java/src/org/gnunet/util/Server.java
===================================================================
--- gnunet-java/src/org/gnunet/util/Server.java 2012-06-13 13:00:13 UTC (rev 
21965)
+++ gnunet-java/src/org/gnunet/util/Server.java 2012-06-13 13:56:49 UTC (rev 
21966)
@@ -95,6 +95,13 @@
                 currentReceive = connection.receive(RelativeTime.FOREVER, new 
MessageReceiver() {
                     @Override
                     public void process(GnunetMessage.Body msg) {
+                        if (msg instanceof UnknownMessageBody) {
+                            if (requireFound) {
+                                logger.info("disconnecting client sending 
unknown message");
+                                disconnect();
+                            }
+                            // otherwise, just ignore it
+                        }
                         if (receivedMessagehandler == null) {
                             throw new AssertionError("received message, but no 
handler installed");
                         }

Modified: gnunet-java/test/org/gnunet/util/ResolverTest.java
===================================================================
--- gnunet-java/test/org/gnunet/util/ResolverTest.java  2012-06-13 13:00:13 UTC 
(rev 21965)
+++ gnunet-java/test/org/gnunet/util/ResolverTest.java  2012-06-13 13:56:49 UTC 
(rev 21966)
@@ -23,6 +23,8 @@
 import org.gnunet.testing.TestingSetup;
 import org.gnunet.testing.TestingSubsystem;
 import org.junit.Test;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import java.net.InetAddress;
 
@@ -33,6 +35,8 @@
  * @author Florian Dold
  */
 public class ResolverTest {
+    private static final Logger logger = LoggerFactory
+            .getLogger(ResolverTest.class);
     @Test
     public void test_resolver() {
         final Wrapper<Boolean> finished1 = new Wrapper<Boolean>(true);
@@ -49,7 +53,7 @@
         r.resolveHostname("gnunet.org", RelativeTime.FOREVER, new 
Resolver.AddressCallback() {
             @Override
             public void onAddress(InetAddress addr) {
-                System.out.println(addr.getHostAddress());
+                logger.info("Hostname resolved to " + addr.getHostAddress());
             }
 
             @Override
@@ -65,7 +69,7 @@
         r.resolveHostname("gnu.org", RelativeTime.FOREVER, new 
Resolver.AddressCallback() {
             @Override
             public void onAddress(InetAddress addr) {
-                System.out.println(addr.getHostAddress());
+                logger.info("Hostname resolved to " + addr.getHostAddress());
             }
 
             @Override




reply via email to

[Prev in Thread] Current Thread [Next in Thread]