提交 0583fba9 编写于 作者: J jgodinez

6653384: Variable "initialized" in class CUPSPrinter is static by mistake

Reviewed-by: tdv, prr
上级 766276c8
......@@ -46,9 +46,9 @@ import javax.print.attribute.standard.PrinterName;
public class CUPSPrinter {
private static final String debugPrefix = "CUPSPrinter>> ";
private static final double PRINTER_DPI = 72.0;
private static boolean initialized;
private boolean initialized;
private static native String getCupsServer();
private static native int getCupsPort();
private static native boolean canConnect(String server, int port);
......@@ -156,7 +156,7 @@ public class CUPSPrinter {
/**
* Initialize media by translating PPD info to PrintService attributes.
*/
private void initMedia() {
private synchronized void initMedia() {
if (initialized) {
return;
} else {
......@@ -392,9 +392,9 @@ public class CUPSPrinter {
* Detects if CUPS is running.
*/
public static boolean isCupsRunning() {
IPPPrintService.debug_println("libFound "+libFound);
IPPPrintService.debug_println(debugPrefix+"libFound "+libFound);
if (libFound) {
IPPPrintService.debug_println("CUPS server "+getServer()+
IPPPrintService.debug_println(debugPrefix+"CUPS server "+getServer()+
" port "+getPort());
return canConnect(getServer(), getPort());
} else {
......
......@@ -62,14 +62,23 @@ import java.util.HashSet;
public class IPPPrintService implements PrintService, SunPrinterJobService {
public static boolean debugPrint = false;
private static String debugPrefix = "IPPPrintService>> ";
public static final boolean debugPrint;
private static final String debugPrefix = "IPPPrintService>> ";
protected static void debug_println(String str) {
if (debugPrint) {
System.out.println(str);
}
}
private static final String FORCE_PIPE_PROP = "sun.print.ippdebug";
static {
String debugStr =
(String)java.security.AccessController.doPrivileged(
new sun.security.action.GetPropertyAction(FORCE_PIPE_PROP));
debugPrint = "true".equalsIgnoreCase(debugStr);
}
private String printer;
private URI myURI;
......@@ -383,7 +392,7 @@ public class IPPPrintService implements PrintService, SunPrinterJobService {
if ((urlConnection = getIPPConnection(myURL)) == null) {
mediaSizeNames = new MediaSizeName[0];
mediaTrays = new MediaTray[0];
debug_println("NULL urlConnection ");
debug_println(debugPrefix+"initAttributes, NULL urlConnection ");
init = true;
return;
}
......@@ -408,7 +417,7 @@ public class IPPPrintService implements PrintService, SunPrinterJobService {
return;
} catch (Exception e) {
IPPPrintService.debug_println(debugPrefix+
" error creating CUPSPrinter e="+e);
"initAttributes, error creating CUPSPrinter e="+e);
}
}
......@@ -912,6 +921,9 @@ public class IPPPrintService implements PrintService, SunPrinterJobService {
* Finds matching CustomMediaSizeName of given media.
*/
public CustomMediaSizeName findCustomMedia(MediaSizeName media) {
if (customMediaSizeNames == null) {
return null;
}
for (int i=0; i< customMediaSizeNames.length; i++) {
CustomMediaSizeName custom =
(CustomMediaSizeName)customMediaSizeNames[i];
......@@ -1193,7 +1205,7 @@ public class IPPPrintService implements PrintService, SunPrinterJobService {
return true;
}
for (int i=0; i<mediaSizeNames.length; i++) {
debug_println("mediaSizeNames[i] "+mediaSizeNames[i]);
debug_println(debugPrefix+"isSupportedMedia, mediaSizeNames[i] "+mediaSizeNames[i]);
if (msn.equals(mediaSizeNames[i])) {
return true;
}
......@@ -1654,9 +1666,10 @@ public class IPPPrintService implements PrintService, SunPrinterJobService {
try {
osw = new OutputStreamWriter(os, "UTF-8");
} catch (java.io.UnsupportedEncodingException exc) {
debug_println("UTF-8 not supported? Exception: "+exc);
debug_println(debugPrefix+"writeIPPRequest, UTF-8 not supported? Exception: "+exc);
return false;
}
debug_println(debugPrefix+"writeIPPRequest, op code= "+operCode);
char[] opCode = new char[2];
opCode[0] = (char)Byte.parseByte(operCode.substring(0,2), 16);
opCode[1] = (char)Byte.parseByte(operCode.substring(2,4), 16);
......@@ -1697,7 +1710,7 @@ public class IPPPrintService implements PrintService, SunPrinterJobService {
osw.flush();
osw.close();
} catch (java.io.IOException ioe) {
debug_println(debugPrefix+"IPPPrintService Exception in writeIPPRequest: "+ioe);
debug_println(debugPrefix+"writeIPPRequest, IPPPrintService Exception in writeIPPRequest: "+ioe);
return false;
}
return true;
......@@ -1734,7 +1747,7 @@ public class IPPPrintService implements PrintService, SunPrinterJobService {
while ((response[0] >= GRPTAG_OP_ATTRIBUTES) &&
(response[0] <= GRPTAG_PRINTER_ATTRIBUTES)
&& (response[0] != GRPTAG_END_ATTRIBUTES)) {
debug_println(debugPrefix+"checking group tag, response[0]= "+
debug_println(debugPrefix+"readIPPResponse, checking group tag, response[0]= "+
response[0]);
outObj = new ByteArrayOutputStream();
......@@ -1773,6 +1786,7 @@ public class IPPPrintService implements PrintService, SunPrinterJobService {
outArray);
responseMap.put(ac.getName(), ac);
debug_println(debugPrefix+ "readIPPResponse "+ac);
}
outObj = new ByteArrayOutputStream();
......@@ -1845,6 +1859,9 @@ public class IPPPrintService implements PrintService, SunPrinterJobService {
} catch (java.io.IOException e) {
debug_println(debugPrefix+"readIPPResponse: "+e);
if (debugPrint) {
e.printStackTrace();
}
return null;
}
}
......
/*
* Copyright 2008 Sun Microsystems, Inc. All Rights Reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
* CA 95054 USA or visit www.sun.com if you need additional information or
* have any questions.
*/
/**
* @test
* @bug 6653384
* @summary No exception should be thrown.
* @run main GetMediasTest
*/
import javax.print.PrintService;
import javax.print.PrintServiceLookup;
import javax.print.attribute.standard.Media;
public class GetMediasTest {
public static void main(String[] args) {
PrintService[] services = PrintServiceLookup.lookupPrintServices(null, null);
for(final PrintService service: services) {
Thread thread = new Thread() {
public void run() {
service.getSupportedAttributeValues(Media.class, null, null);
}
};
thread.start();
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册