Skip to content

Commit 0b09e9a

Browse files
committed
jnr-unixsocket: Switched to newer jnr-unixsocket version containing some essential patches; Fixed a few issues with unit tests; Fixed handling of TransportFactory/AbstractTransport
1 parent 3d5f17b commit 0b09e9a

6 files changed

Lines changed: 24 additions & 28 deletions

File tree

dbus-java/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@
111111
<dependency>
112112
<groupId>com.github.jnr</groupId>
113113
<artifactId>jnr-unixsocket</artifactId>
114-
<version>0.22-SNAPSHOT</version>
114+
<version>0.22</version>
115115
</dependency>
116116

117117
<dependency>

dbus-java/src/main/java/org/freedesktop/dbus/connections/AbstractConnection.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -149,7 +149,6 @@ protected AbstractConnection(String address) throws DBusException {
149149
try {
150150
busAddress = new BusAddress(address);
151151
transport = TransportFactory.createTransport(busAddress, AbstractConnection.TIMEOUT);
152-
transport.start();
153152
connected = true;
154153
} catch (IOException | DBusException ioe) {
155154
logger.debug("Error creating transport", ioe);

dbus-java/src/main/java/org/freedesktop/dbus/connections/transports/AbstractTransport.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,19 +36,21 @@ public abstract class AbstractTransport implements Closeable {
3636
}
3737

3838
public void writeMessage(Message _msg) throws IOException {
39-
if (!outputWriter.isClosed()) {
39+
if (outputWriter != null && !outputWriter.isClosed()) {
4040
outputWriter.writeMessage(_msg);
41+
} else {
42+
throw new IOException("OutputWriter already closed or null");
4143
}
4244
}
4345

4446
public Message readMessage() throws IOException, DBusException {
45-
if (!inputReader.isClosed()) {
47+
if (inputReader != null && !inputReader.isClosed()) {
4648
return inputReader.readMessage();
4749
}
48-
return null;
50+
throw new IOException("InputReader already closed or null");
4951
}
5052

51-
public void start() throws IOException {
53+
void start() throws IOException {
5254
connect();
5355
}
5456

dbus-java/src/main/java/org/freedesktop/dbus/connections/transports/TransportFactory.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,13 +31,18 @@ private TransportFactory() {
3131
public static AbstractTransport createTransport(BusAddress _address, int _timeout) throws IOException {
3232
LoggerFactory.getLogger(TransportFactory.class).debug("Connecting to {}", _address);
3333

34+
AbstractTransport transport;
35+
3436
if (_address.getBusType() == AddressBusTypes.UNIX) {
35-
return new UnixSocketTransport(_address, _timeout);
37+
transport = new UnixSocketTransport(_address, _timeout);
3638
// } else if (_address.getBusType() == AddressBusTypes.TCP) {
3739
// return new TcpTransport(_address, _timeout);
3840
} else {
3941
throw new IOException("Unknown address type " + _address.getType());
4042
}
43+
44+
transport.start();
45+
return transport;
4146
}
4247

4348
public static AbstractTransport createTransport(BusAddress _address) throws IOException {

dbus-java/src/test/java/org/freedesktop/dbus/test/TestCross.java

Lines changed: 8 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package org.freedesktop.dbus.test;
22

3-
import static org.junit.jupiter.api.Assertions.assertFalse;
43
import static org.junit.jupiter.api.Assertions.assertTrue;
54
import static org.junit.jupiter.api.Assertions.fail;
65

@@ -30,6 +29,7 @@ public class TestCross {
3029
@BeforeEach
3130
public void before() {
3231
serverThread = new ServerThread();
32+
serverThread.setName("Server Thread");
3333
serverThread.start();
3434
}
3535

@@ -40,17 +40,14 @@ public void after() {
4040
}
4141
}
4242

43-
44-
4543
@Test
4644
public void testCross() throws InterruptedException {
4745
while (!serverReady) {
4846
Thread.sleep(500L);
4947
}
5048

51-
try {
49+
try (DBusConnection conn = DBusConnection.getConnection(DBusBusType.SESSION)){
5250
/* init */
53-
DBusConnection conn = DBusConnection.getConnection(DBusBusType.SESSION);
5451
CrossTestClient client = new CrossTestClient(conn);
5552
conn.exportObject("/TestClient", client);
5653
conn.addSigHandler(Binding.SampleSignals.Triggered.class, client);
@@ -73,13 +70,12 @@ public void testCross() throws InterruptedException {
7370
System.out.println(s.getKey() + " failed: " + msg);
7471
}
7572
}
76-
77-
conn.disconnect();
78-
} catch (DBusException exDbe) {
73+
74+
} catch (DBusException | IOException exDbe) {
7975
exDbe.printStackTrace();
80-
}
76+
fail("Exception while processing DBus");
77+
}
8178

82-
assertTrue(serverThread.getCts().getNotdone().isEmpty()); // all tests should have been run
8379
}
8480

8581

@@ -105,20 +101,14 @@ public void run() {
105101
System.out.println(s + " ok");
106102
}
107103
for (String s : cts.getNotdone()) {
108-
System.out.println(s + " untested");
104+
System.out.println("---> " + s + " untested");
109105
}
110106
conn.disconnect();
111-
assertFalse(cts.getNotdone().isEmpty(), "All tests should have been run");
107+
assertTrue(cts.getNotdone().isEmpty(), "All tests should have been run, following failed: " + String.join(", ", cts.getNotdone()));
112108
} catch (DBusException | IOException exDe) {
113109
exDe.printStackTrace();
114110
fail("Exception while server running");
115111
}
116112
}
117-
118-
CrossTestServer getCts() {
119-
return cts;
120-
}
121-
122-
123113
}
124114
}

dbus-java/src/test/resources/logback.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@
1111
<logger name="com" level="INFO" />
1212
<logger name="org" level="INFO" />
1313
<logger name="cx.ath.matthew" level="INFO" />
14-
<logger name="org.freedesktop.dbus.connections" level="TRACE" />
14+
<logger name="org.freedesktop.dbus.connections" level="INFO" />
1515
<logger name="org.freedesktop.dbus.errors" level="INFO" />
16-
<logger name="org.freedesktop.dbus.messages" level="TRACE" />
17-
<logger name="org.freedesktop.dbus.MessageWriter" level="TRACE" />
16+
<logger name="org.freedesktop.dbus.messages" level="INFO" />
17+
<logger name="org.freedesktop.dbus.MessageWriter" level="INFO" />
1818

1919
<logger name="org.freedesktop.dbus.bin" level="INFO" />
2020

0 commit comments

Comments
 (0)