Changeset 30738 in osm for applications/editors/josm/plugins/native-password-manager/src
- Timestamp:
- 2014-10-19T01:27:04+02:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
applications/editors/josm/plugins/native-password-manager/src/org/netbeans/modules/keyring/kde/KWalletProvider.java
r26335 r30738 49 49 import java.util.logging.Level; 50 50 import java.util.logging.Logger; 51 51 52 import org.netbeans.spi.keyring.KeyringProvider; 52 53 … … 69 70 } 70 71 CommandResult result = runCommand("isEnabled"); 71 if(new String(result.retVal).equals("true")) { 72 if(new String(result.retVal).equals("true")) { 72 73 return updateHandler(); 73 } 74 } 74 75 return false; 75 76 }; … … 121 122 } 122 123 handler = new String(handler).equals("")? "0".toCharArray() : handler; 123 CommandResult result = runCommand("isOpen",handler); 124 CommandResult result = runCommand("isOpen",handler); 124 125 if(new String(result.retVal).equals("true")){ 125 126 return true; 126 127 } 127 128 char[] localWallet = defaultLocalWallet; 128 result = runCommand("localWallet"); 129 if(result.exitCode == 0) { 129 result = runCommand("localWallet"); 130 if(result.exitCode == 0) { 130 131 localWallet = result.retVal; 131 132 } 132 133 if(new String(localWallet).contains(".service")) { 133 134 if(new String(localWallet).contains(".service")) { 134 135 //Temporary workaround for the bug in kdelibs/kdeui/util/kwallet.cpp 135 136 //The bug was fixed http://svn.reviewboard.kde.org/r/5885/diff/ … … 138 139 } 139 140 result = runCommand("open", localWallet , "0".toCharArray(), getApplicationName(true)); 140 if(result.exitCode == 2) { 141 if(result.exitCode == 2) { 141 142 warning("time out happened while accessing KWallet"); 142 143 //don't try to open KWallet anymore until bug https://bugs.kde.org/show_bug.cgi?id=259229 is fixed 143 144 timeoutHappened = true; 144 145 return false; 145 } 146 } 146 147 if(result.exitCode != 0 || new String(result.retVal).equals("-1")) { 147 148 warning("failed to access KWallet"); 148 149 return false; 149 } 150 } 150 151 handler = result.retVal; 151 152 return true; 152 153 } 153 154 154 155 155 156 156 157 private CommandResult runCommand(String command,char[]... commandArgs) { … … 174 175 } 175 176 Process pr = rt.exec(argv); 176 177 BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()));178 179 177 String line; 180 while((line = input.readLine()) != null) { 181 if (!retVal.equals("")){ 182 retVal = retVal.concat("\n"); 178 179 try (BufferedReader input = new BufferedReader(new InputStreamReader(pr.getInputStream()))) { 180 while((line = input.readLine()) != null) { 181 if (!retVal.equals("")){ 182 retVal = retVal.concat("\n"); 183 } 184 retVal = retVal.concat(line); 183 185 } 184 retVal = retVal.concat(line);185 } 186 input.close();187 input = new BufferedReader(new InputStreamReader(pr.getErrorStream()));188 189 while((line = input.readLine()) != null) {190 if (!errVal.equals("")){191 errVal = errVal.concat( "\n");186 } 187 188 try (BufferedReader input = new BufferedReader(new InputStreamReader(pr.getErrorStream()))) { 189 while((line = input.readLine()) != null) { 190 if (!errVal.equals("")){ 191 errVal = errVal.concat("\n"); 192 } 193 errVal = errVal.concat(line); 192 194 } 193 errVal = errVal.concat(line); 194 } 195 input.close(); 195 } 196 196 197 197 exitCode = pr.waitFor(); … … 199 199 logger.log(Level.FINE, "application exit with code {0} for commandString: {1}; errVal: {2}", 200 200 new Object[]{exitCode, Arrays.toString(argv), errVal}); 201 } 201 } 202 202 } catch (InterruptedException ex) { 203 203 logger.log(Level.FINE, … … 210 210 } 211 211 return new CommandResult(exitCode, retVal.trim().toCharArray(), errVal.trim()); 212 } 212 } 213 213 214 214 private char[] getApplicationName(){ … … 222 222 private void warning(String descr) { 223 223 logger.log(Level.WARNING, "Something went wrong: {0}", descr); 224 } 225 224 } 225 226 226 private class CommandResult { 227 227 private int exitCode; 228 228 private char[] retVal; 229 private String errVal;230 229 231 230 public CommandResult(int exitCode, char[] retVal, String errVal) { 232 231 this.exitCode = exitCode; 233 232 this.retVal = retVal; 234 this.errVal = errVal; 235 } 233 } 236 234 } 237 235
Note:
See TracChangeset
for help on using the changeset viewer.