summaryrefslogtreecommitdiffstats
path: root/recipes-extended/rxtx/files/multiple_property_dirs.patch
diff options
context:
space:
mode:
Diffstat (limited to 'recipes-extended/rxtx/files/multiple_property_dirs.patch')
-rw-r--r--recipes-extended/rxtx/files/multiple_property_dirs.patch168
1 files changed, 168 insertions, 0 deletions
diff --git a/recipes-extended/rxtx/files/multiple_property_dirs.patch b/recipes-extended/rxtx/files/multiple_property_dirs.patch
new file mode 100644
index 0000000..6664966
--- /dev/null
+++ b/recipes-extended/rxtx/files/multiple_property_dirs.patch
@@ -0,0 +1,168 @@
1Description: Handles the case when "java.ext.dirs" system property contains
2 more than one directory.
3Author: Philip Ashmore <contact@philipashmore.com>
4Bug: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=646069
5Index: rxtx/src/gnu/io/RXTXCommDriver.java
6===================================================================
7--- rxtx.orig/src/gnu/io/RXTXCommDriver.java 2011-10-28 13:02:43.046717064 -0400
8+++ rxtx/src/gnu/io/RXTXCommDriver.java 2011-10-28 13:02:43.186717068 -0400
9@@ -356,7 +356,7 @@
10 First try to register ports specified in the properties
11 file. If that doesn't exist, then scan for ports.
12 */
13- for (int PortType=CommPortIdentifier.PORT_SERIAL;PortType<=CommPortIdentifier.PORT_PARALLEL;PortType++) {
14+ for (int PortType=CommPortIdentifier.PORT_SERIAL; PortType<=CommPortIdentifier.PORT_PARALLEL; PortType++) {
15 if (!registerSpecifiedPorts(PortType)) {
16 if (!registerKnownPorts(PortType)) {
17 registerScannedPorts(PortType);
18@@ -375,10 +375,18 @@
19 while (tok.hasMoreElements())
20 {
21 String PortName = tok.nextToken();
22-
23- if (testRead(PortName, PortType))
24+ if(debug)
25+ System.out.println("Trying " + PortName + ".");
26+ if (testRead(PortName, PortType)) {
27 CommPortIdentifier.addPortName(PortName,
28 PortType, this);
29+ if(debug)
30+ System.out.println("Success: Read from " + PortName + ".");
31+ }else{
32+ if(debug)
33+ System.out.println("Fail: Cannot read from " + PortName
34+ + ".");
35+ }
36 }
37 }
38
39@@ -402,26 +410,39 @@
40 private boolean registerSpecifiedPorts(int PortType)
41 {
42 String val = null;
43- Properties origp = System.getProperties();//save system properties
44-
45- try
46- {
47+ Properties origp = System.getProperties(); // save system properties
48
49- String ext_dir=System.getProperty("java.ext.dirs")+System.getProperty("file.separator");
50- FileInputStream rxtx_prop=new FileInputStream(ext_dir+"gnu.io.rxtx.properties");
51- Properties p=new Properties();
52- p.load(rxtx_prop);
53- System.setProperties(p);
54- for (Iterator it = p.keySet().iterator(); it.hasNext();) {
55- String key = (String) it.next();
56- System.setProperty(key, p.getProperty(key));
57- }
58- }catch(Exception e){
59- if (debug){
60- System.out.println("The file: gnu.io.rxtx.properties doesn't exists.");
61- System.out.println(e.toString());
62- }//end if
63+ String [] ext_dirs = System.getProperty("java.ext.dirs").split(":");
64+ String fs = System.getProperty("file.separator");
65+ for (int n = 0; n < ext_dirs.length; ++n) {
66+ String ext_file = "?";
67+ try{
68+ ext_file = ext_dirs[n] + fs + "gnu.io.rxtx.properties";
69+ FileInputStream rxtx_prop = new FileInputStream(ext_file);
70+ Properties p=new Properties();
71+ p.load(rxtx_prop);
72+ System.setProperties(p);
73+ for (Iterator it = p.keySet().iterator(); it.hasNext();) {
74+ String key = (String) it.next();
75+ String value = p.getProperty(key);
76+ if(debug) {
77+ System.out.println(key + " -> " + value);
78+ }
79+ System.setProperty(key, value);
80+ }
81+ }catch(Exception e){
82+ if (debug){
83+ System.out.println("The file \"" + ext_file
84+ + "\" doesn't exist.");
85+ System.out.println(e.toString());
86+ }//end if
87+ continue;
88 }//end catch
89+ if (debug){
90+ System.out.println("Read properties from \"" + ext_file
91+ + "\".");
92+ }//end if
93+ }//end for
94
95 if (debug)
96 System.out.println("checking for system-known ports of type "+PortType);
97Index: rxtx/src/SerialImp.c
98===================================================================
99--- rxtx.orig/src/SerialImp.c 2011-10-28 13:02:43.078717065 -0400
100+++ rxtx/src/SerialImp.c 2011-10-28 13:02:43.190717067 -0400
101@@ -4359,7 +4359,11 @@
102
103 if( fd < 0 )
104 {
105- report_verbose( "testRead() open failed\n" );
106+ report_verbose( "testRead() open \"" );
107+ report_verbose( name );
108+ report_verbose( "\" failed: " );
109+ report_verbose( strerror(errno) );
110+ report_verbose( "\n" );
111 ret = JNI_FALSE;
112 goto END;
113 }
114@@ -5095,7 +5099,7 @@
115 exceptions: none
116 comments:
117 ----------------------------------------------------------*/
118-void report_warning(char *msg)
119+void report_warning(const char *msg)
120 {
121 #ifndef DEBUG_MW
122 fprintf(stderr, msg);
123@@ -5113,7 +5117,7 @@
124 exceptions: none
125 comments:
126 ----------------------------------------------------------*/
127-void report_verbose(char *msg)
128+void report_verbose(const char *msg)
129 {
130 #ifdef DEBUG_VERBOSE
131 #ifdef DEBUG_MW
132@@ -5132,7 +5136,7 @@
133 exceptions: none
134 comments:
135 ----------------------------------------------------------*/
136-void report_error(char *msg)
137+void report_error(const char *msg)
138 {
139 #ifndef DEBUG_MW
140 fprintf(stderr, msg);
141@@ -5150,7 +5154,7 @@
142 exceptions: none
143 comments:
144 ----------------------------------------------------------*/
145-void report(char *msg)
146+void report(const char *msg)
147 {
148 #ifdef DEBUG
149 # ifndef DEBUG_MW
150Index: rxtx/src/SerialImp.h
151===================================================================
152--- rxtx.orig/src/SerialImp.h 2011-10-28 13:02:43.162717067 -0400
153+++ rxtx/src/SerialImp.h 2011-10-28 13:02:43.194717067 -0400
154@@ -467,10 +467,10 @@
155 jboolean is_interrupted( struct event_info_struct * );
156 int send_event(struct event_info_struct *, jint, int );
157 void dump_termios(char *,struct termios *);
158-void report_verbose(char *);
159-void report_error(char *);
160-void report_warning(char *);
161-void report(char *);
162+void report_verbose(const char *);
163+void report_error(const char *);
164+void report_warning(const char *);
165+void report(const char *);
166 void throw_java_exception( JNIEnv *, char *, char *, char * );
167 int lock_device( const char * );
168 void unlock_device( const char * );