提交 544c7984 编写于 作者: M malenkov

8026491: Typos in string literals

Reviewed-by: alexsch, anthony
上级 0a9a69b6
...@@ -227,7 +227,7 @@ public class AquaFileChooserUI extends FileChooserUI { ...@@ -227,7 +227,7 @@ public class AquaFileChooserUI extends FileChooserUI {
// Exist in basic.properties (though we might want to override) // Exist in basic.properties (though we might want to override)
fileDescriptionText = UIManager.getString("FileChooser.fileDescriptionText"); fileDescriptionText = UIManager.getString("FileChooser.fileDescriptionText");
directoryDescriptionText = UIManager.getString("FileChooser.directoryDescriptionText"); directoryDescriptionText = UIManager.getString("FileChooser.directoryDescriptionText");
newFolderErrorText = getString("FileChooser.newFolderErrorText", "Error occured during folder creation"); newFolderErrorText = getString("FileChooser.newFolderErrorText", "Error occurred during folder creation");
saveButtonText = UIManager.getString("FileChooser.saveButtonText"); saveButtonText = UIManager.getString("FileChooser.saveButtonText");
openButtonText = UIManager.getString("FileChooser.openButtonText"); openButtonText = UIManager.getString("FileChooser.openButtonText");
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
############ FILE CHOOSER STRINGS ############# ############ FILE CHOOSER STRINGS #############
FileChooser.fileDescription.textAndMnemonic=Generic File FileChooser.fileDescription.textAndMnemonic=Generic File
FileChooser.directoryDescription.textAndMnemonic=Directory FileChooser.directoryDescription.textAndMnemonic=Directory
FileChooser.newFolderError.textAndMnemonic=Error occured during folder creation FileChooser.newFolderError.textAndMnemonic=Error occurred during folder creation
FileChooser.newFolderErrorSeparator= : FileChooser.newFolderErrorSeparator= :
FileChooser.acceptAllFileFilter.textAndMnemonic=All Files FileChooser.acceptAllFileFilter.textAndMnemonic=All Files
FileChooser.cancelButton.textAndMnemonic=Cancel FileChooser.cancelButton.textAndMnemonic=Cancel
......
...@@ -123,7 +123,7 @@ public class StandardMetadataFormatResources extends ListResourceBundle { ...@@ -123,7 +123,7 @@ public class StandardMetadataFormatResources extends ListResourceBundle {
"The vertical position, in millimeters, where the image should be rendered on media " }, "The vertical position, in millimeters, where the image should be rendered on media " },
{ "HorizontalPixelOffset", { "HorizontalPixelOffset",
"The horizonal position, in pixels, where the image should be rendered onto a raster display" }, "The horizontal position, in pixels, where the image should be rendered onto a raster display" },
{ "VerticalPixelOffset", { "VerticalPixelOffset",
"The vertical position, in pixels, where the image should be rendered onto a raster display" }, "The vertical position, in pixels, where the image should be rendered onto a raster display" },
......
...@@ -111,7 +111,7 @@ class SnmpSubBulkRequestHandler extends SnmpSubRequestHandler { ...@@ -111,7 +111,7 @@ class SnmpSubBulkRequestHandler extends SnmpSubRequestHandler {
if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) { if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpSubRequestHandler.class.getName(), SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpSubRequestHandler.class.getName(),
"run", "[" + Thread.currentThread() + "run", "[" + Thread.currentThread() +
"]:an Snmp error occured during the operation", x); "]:an Snmp error occurred during the operation", x);
} }
} }
catch(Exception x) { catch(Exception x) {
...@@ -119,7 +119,7 @@ class SnmpSubBulkRequestHandler extends SnmpSubRequestHandler { ...@@ -119,7 +119,7 @@ class SnmpSubBulkRequestHandler extends SnmpSubRequestHandler {
if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) { if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpSubRequestHandler.class.getName(), SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpSubRequestHandler.class.getName(),
"run", "[" + Thread.currentThread() + "run", "[" + Thread.currentThread() +
"]:a generic error occured during the operation", x); "]:a generic error occurred during the operation", x);
} }
} }
if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) { if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
......
...@@ -127,7 +127,7 @@ class SnmpSubNextRequestHandler extends SnmpSubRequestHandler { ...@@ -127,7 +127,7 @@ class SnmpSubNextRequestHandler extends SnmpSubRequestHandler {
if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) { if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpSubRequestHandler.class.getName(), SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpSubRequestHandler.class.getName(),
"run", "[" + Thread.currentThread() + "run", "[" + Thread.currentThread() +
"]:an Snmp error occured during the operation", x); "]:an Snmp error occurred during the operation", x);
} }
} }
catch(Exception x) { catch(Exception x) {
...@@ -135,7 +135,7 @@ class SnmpSubNextRequestHandler extends SnmpSubRequestHandler { ...@@ -135,7 +135,7 @@ class SnmpSubNextRequestHandler extends SnmpSubRequestHandler {
if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) { if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpSubRequestHandler.class.getName(), SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpSubRequestHandler.class.getName(),
"run", "[" + Thread.currentThread() + "run", "[" + Thread.currentThread() +
"]:a generic error occured during the operation", x); "]:a generic error occurred during the operation", x);
} }
} }
if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) { if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
......
...@@ -231,7 +231,7 @@ class SnmpSubRequestHandler implements SnmpDefinitions, Runnable { ...@@ -231,7 +231,7 @@ class SnmpSubRequestHandler implements SnmpDefinitions, Runnable {
if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) { if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpSubRequestHandler.class.getName(), SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpSubRequestHandler.class.getName(),
"run", "[" + Thread.currentThread() + "run", "[" + Thread.currentThread() +
"]:an Snmp error occured during the operation", x); "]:an Snmp error occurred during the operation", x);
} }
} }
catch(Exception x) { catch(Exception x) {
...@@ -239,7 +239,7 @@ class SnmpSubRequestHandler implements SnmpDefinitions, Runnable { ...@@ -239,7 +239,7 @@ class SnmpSubRequestHandler implements SnmpDefinitions, Runnable {
if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) { if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINEST)) {
SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpSubRequestHandler.class.getName(), SNMP_ADAPTOR_LOGGER.logp(Level.FINEST, SnmpSubRequestHandler.class.getName(),
"run", "[" + Thread.currentThread() + "run", "[" + Thread.currentThread() +
"]:a generic error occured during the operation", x); "]:a generic error occurred during the operation", x);
} }
} }
if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) { if (SNMP_ADAPTOR_LOGGER.isLoggable(Level.FINER)) {
......
...@@ -377,7 +377,7 @@ public class CommandInterpreter { ...@@ -377,7 +377,7 @@ public class CommandInterpreter {
env.failure("Attempt to launch main class \"" + clname + "\" failed."); env.failure("Attempt to launch main class \"" + clname + "\" failed.");
} }
} else { } else {
env.failure("No main class specifed and no current default defined."); env.failure("No main class specified and no current default defined.");
} }
} else { } else {
clname = t.nextToken(); clname = t.nextToken();
...@@ -428,7 +428,7 @@ public class CommandInterpreter { ...@@ -428,7 +428,7 @@ public class CommandInterpreter {
env.failure("Attempt to attach to port \"" + portName + "\" failed."); env.failure("Attempt to attach to port \"" + portName + "\" failed.");
} }
} else { } else {
env.failure("No port specifed and no current default defined."); env.failure("No port specified and no current default defined.");
} }
} else { } else {
portName = t.nextToken(); portName = t.nextToken();
......
...@@ -806,7 +806,7 @@ function XSLTransform(inp, style, out) { ...@@ -806,7 +806,7 @@ function XSLTransform(inp, style, out) {
out = arguments[2]; out = arguments[2];
break; break;
default: default:
println("XSL tranform requires 2 or 3 arguments"); println("XSL transform requires 2 or 3 arguments");
return; return;
} }
......
...@@ -36,7 +36,7 @@ engine.not.found=\ ...@@ -36,7 +36,7 @@ engine.not.found=\
script engine for language {0} can not be found script engine for language {0} can not be found
engine.info=\ engine.info=\
Language {0} {1} implemention "{2}" {3} Language {0} {1} implementation "{2}" {3}
encoding.unsupported=\ encoding.unsupported=\
encoding {0} is not supported encoding {0} is not supported
......
...@@ -360,7 +360,7 @@ public class RequiredModelMBean ...@@ -360,7 +360,7 @@ public class RequiredModelMBean
MODELMBEAN_LOGGER.logp(Level.FINER, MODELMBEAN_LOGGER.logp(Level.FINER,
RequiredModelMBean.class.getName(), RequiredModelMBean.class.getName(),
"setManagedResource(Object,String)", "setManagedResource(Object,String)",
"Managed Resouce Type is not supported: " + mr_type); "Managed Resource Type is not supported: " + mr_type);
} }
throw new InvalidTargetObjectTypeException(mr_type); throw new InvalidTargetObjectTypeException(mr_type);
} }
...@@ -369,7 +369,7 @@ public class RequiredModelMBean ...@@ -369,7 +369,7 @@ public class RequiredModelMBean
MODELMBEAN_LOGGER.logp(Level.FINER, MODELMBEAN_LOGGER.logp(Level.FINER,
RequiredModelMBean.class.getName(), RequiredModelMBean.class.getName(),
"setManagedResource(Object,String)", "setManagedResource(Object,String)",
"Managed Resouce is valid"); "Managed Resource is valid");
} }
managedResource = mr; managedResource = mr;
......
...@@ -208,7 +208,7 @@ class KeyboardManager { ...@@ -208,7 +208,7 @@ class KeyboardManager {
public boolean fireKeyboardAction(KeyEvent e, boolean pressed, Container topAncestor) { public boolean fireKeyboardAction(KeyEvent e, boolean pressed, Container topAncestor) {
if (e.isConsumed()) { if (e.isConsumed()) {
System.out.println("Aquired pre-used event!"); System.out.println("Acquired pre-used event!");
Thread.dumpStack(); Thread.dumpStack();
} }
......
...@@ -116,7 +116,7 @@ public class SortingFocusTraversalPolicy ...@@ -116,7 +116,7 @@ public class SortingFocusTraversalPolicy
index = Collections.binarySearch(cycle, aComponent, comparator); index = Collections.binarySearch(cycle, aComponent, comparator);
} catch (ClassCastException e) { } catch (ClassCastException e) {
if (log.isLoggable(PlatformLogger.Level.FINE)) { if (log.isLoggable(PlatformLogger.Level.FINE)) {
log.fine("### During the binary search for " + aComponent + " the exception occured: ", e); log.fine("### During the binary search for " + aComponent + " the exception occurred: ", e);
} }
return -1; return -1;
} }
......
...@@ -1367,7 +1367,7 @@ public abstract class AbstractDocument implements Document, Serializable { ...@@ -1367,7 +1367,7 @@ public abstract class AbstractDocument implements Document, Serializable {
currWriter = Thread.currentThread(); currWriter = Thread.currentThread();
numWriters = 1; numWriters = 1;
} catch (InterruptedException e) { } catch (InterruptedException e) {
throw new Error("Interrupted attempt to aquire write lock"); throw new Error("Interrupted attempt to acquire write lock");
} }
} }
...@@ -1409,7 +1409,7 @@ public abstract class AbstractDocument implements Document, Serializable { ...@@ -1409,7 +1409,7 @@ public abstract class AbstractDocument implements Document, Serializable {
} }
numReaders += 1; numReaders += 1;
} catch (InterruptedException e) { } catch (InterruptedException e) {
throw new Error("Interrupted attempt to aquire read lock"); throw new Error("Interrupted attempt to acquire read lock");
} }
} }
......
...@@ -430,7 +430,7 @@ public final class AppContext { ...@@ -430,7 +430,7 @@ public final class AppContext {
try { try {
w.dispose(); w.dispose();
} catch (Throwable t) { } catch (Throwable t) {
log.finer("exception occured while disposing app context", t); log.finer("exception occurred while disposing app context", t);
} }
} }
AccessController.doPrivileged(new PrivilegedAction<Void>() { AccessController.doPrivileged(new PrivilegedAction<Void>() {
......
...@@ -188,7 +188,7 @@ public class JVM_MANAGEMENT_MIB_IMPL extends JVM_MANAGEMENT_MIB { ...@@ -188,7 +188,7 @@ public class JVM_MANAGEMENT_MIB_IMPL extends JVM_MANAGEMENT_MIB {
sendTrap(trap, list); sendTrap(trap, list);
}catch(Exception e) { }catch(Exception e) {
log.error("handleNotification", log.error("handleNotification",
"Exception occured : " + e); "Exception occurred : " + e);
} }
} }
} }
...@@ -243,7 +243,7 @@ public class JVM_MANAGEMENT_MIB_IMPL extends JVM_MANAGEMENT_MIB { ...@@ -243,7 +243,7 @@ public class JVM_MANAGEMENT_MIB_IMPL extends JVM_MANAGEMENT_MIB {
adaptor.snmpV2Trap(peer, trap, list, null); adaptor.snmpV2Trap(peer, trap, list, null);
}catch(Exception e) { }catch(Exception e) {
log.error("sendTrap", log.error("sendTrap",
"Exception occured while sending trap to [" + "Exception occurred while sending trap to [" +
target + "]. Exception : " + e); target + "]. Exception : " + e);
log.debug("sendTrap",e); log.debug("sendTrap",e);
} }
......
...@@ -265,7 +265,7 @@ public class ExtensionDependency { ...@@ -265,7 +265,7 @@ public class ExtensionDependency {
* the jar file. * the jar file.
* </p> * </p>
* *
* @param extensionName key in the attibute list * @param extensionName key in the attribute list
* @param attr manifest file attributes * @param attr manifest file attributes
* @param file installed extension jar file to compare the requested * @param file installed extension jar file to compare the requested
* extension against. * extension against.
......
...@@ -1132,7 +1132,7 @@ public class RMIGenerator implements RMIConstants, Generator { ...@@ -1132,7 +1132,7 @@ public class RMIGenerator implements RMIConstants, Generator {
throws IOException throws IOException
{ {
if (types.length != names.length) { if (types.length != names.length) {
throw new Error("paramter type and name arrays different sizes"); throw new Error("parameter type and name arrays different sizes");
} }
for (int i = 0; i < types.length; i++) { for (int i = 0; i < types.length; i++) {
...@@ -1213,7 +1213,7 @@ public class RMIGenerator implements RMIConstants, Generator { ...@@ -1213,7 +1213,7 @@ public class RMIGenerator implements RMIConstants, Generator {
throws IOException throws IOException
{ {
if (types.length != names.length) { if (types.length != names.length) {
throw new Error("paramter type and name arrays different sizes"); throw new Error("parameter type and name arrays different sizes");
} }
boolean readObject = false; boolean readObject = false;
......
...@@ -192,7 +192,7 @@ abstract class InitialToken extends Krb5Token { ...@@ -192,7 +192,7 @@ abstract class InitialToken extends Krb5Token {
if (krbCredMessage.length > 0x0000ffff) if (krbCredMessage.length > 0x0000ffff)
throw new GSSException(GSSException.FAILURE, -1, throw new GSSException(GSSException.FAILURE, -1,
"Incorrect messsage length"); "Incorrect message length");
writeLittleEndian(krbCredMessage.length, temp); writeLittleEndian(krbCredMessage.length, temp);
checksumBytes[pos++] = temp[0]; checksumBytes[pos++] = temp[0];
......
...@@ -360,7 +360,7 @@ public class SpNegoContext implements GSSContextSpi { ...@@ -360,7 +360,7 @@ public class SpNegoContext implements GSSContextSpi {
if (internal_mech == null) { if (internal_mech == null) {
// return wth failure // return wth failure
throw new GSSException(errorCode, -1, throw new GSSException(errorCode, -1,
"supported mechansim from server is null"); "supported mechanism from server is null");
} }
// get the negotiated result // get the negotiated result
...@@ -911,7 +911,7 @@ public class SpNegoContext implements GSSContextSpi { ...@@ -911,7 +911,7 @@ public class SpNegoContext implements GSSContextSpi {
return mechContext.isEstablished(); return mechContext.isEstablished();
} else { } else {
if (DEBUG) { if (DEBUG) {
System.out.println("The underlying mechansim context has " + System.out.println("The underlying mechanism context has " +
"not been initialized"); "not been initialized");
} }
return false; return false;
...@@ -1024,7 +1024,7 @@ public class SpNegoContext implements GSSContextSpi { ...@@ -1024,7 +1024,7 @@ public class SpNegoContext implements GSSContextSpi {
return peerName; return peerName;
} else { } else {
if (DEBUG) { if (DEBUG) {
System.out.println("The underlying mechansim context has " + System.out.println("The underlying mechanism context has " +
"not been initialized"); "not been initialized");
} }
return null; return null;
...@@ -1040,7 +1040,7 @@ public class SpNegoContext implements GSSContextSpi { ...@@ -1040,7 +1040,7 @@ public class SpNegoContext implements GSSContextSpi {
return myName; return myName;
} else { } else {
if (DEBUG) { if (DEBUG) {
System.out.println("The underlying mechansim context has " + System.out.println("The underlying mechanism context has " +
"not been initialized"); "not been initialized");
} }
return null; return null;
......
...@@ -450,9 +450,9 @@ public class FileChooserDemo extends JPanel implements ActionListener { ...@@ -450,9 +450,9 @@ public class FileChooserDemo extends JPanel implements ActionListener {
"User cancelled operation. No file was chosen."); "User cancelled operation. No file was chosen.");
} else if (retval == ERROR_OPTION) { } else if (retval == ERROR_OPTION) {
JOptionPane.showMessageDialog(frame, JOptionPane.showMessageDialog(frame,
"An error occured. No file was chosen."); "An error occurred. No file was chosen.");
} else { } else {
JOptionPane.showMessageDialog(frame, "Unknown operation occured."); JOptionPane.showMessageDialog(frame, "Unknown operation occurred.");
} }
} }
......
...@@ -598,16 +598,16 @@ void jAttributeArrayToCKAttributeArray(JNIEnv *env, jobjectArray jArray, CK_ATTR ...@@ -598,16 +598,16 @@ void jAttributeArrayToCKAttributeArray(JNIEnv *env, jobjectArray jArray, CK_ATTR
throwOutOfMemoryError(env, 0); throwOutOfMemoryError(env, 0);
return; return;
} }
TRACE1(", converting %d attibutes", jLength); TRACE1(", converting %d attributes", jLength);
for (i=0; i<(*ckpLength); i++) { for (i=0; i<(*ckpLength); i++) {
TRACE1(", getting %d. attibute", i); TRACE1(", getting %d. attribute", i);
jAttribute = (*env)->GetObjectArrayElement(env, jArray, i); jAttribute = (*env)->GetObjectArrayElement(env, jArray, i);
if ((*env)->ExceptionCheck(env)) { if ((*env)->ExceptionCheck(env)) {
freeCKAttributeArray(*ckpArray, i); freeCKAttributeArray(*ckpArray, i);
return; return;
} }
TRACE1(", jAttribute = %d", jAttribute); TRACE1(", jAttribute = %d", jAttribute);
TRACE1(", converting %d. attibute", i); TRACE1(", converting %d. attribute", i);
(*ckpArray)[i] = jAttributeToCKAttribute(env, jAttribute); (*ckpArray)[i] = jAttributeToCKAttribute(env, jAttribute);
if ((*env)->ExceptionCheck(env)) { if ((*env)->ExceptionCheck(env)) {
freeCKAttributeArray(*ckpArray, i); freeCKAttributeArray(*ckpArray, i);
......
...@@ -58,7 +58,7 @@ class ClientReader { ...@@ -58,7 +58,7 @@ class ClientReader {
} }
/** /**
* Runs a cycle of doing a beforeRead action and then inquiring a new * Runs a cycle of doing a beforeRead action and then enqueuing a new
* read on the client. Handles closed channels and errors while reading. * read on the client. Handles closed channels and errors while reading.
* If the client is still connected a new round of actions are called. * If the client is still connected a new round of actions are called.
*/ */
......
...@@ -1173,7 +1173,7 @@ abstract class XDecoratedPeer extends XWindowPeer { ...@@ -1173,7 +1173,7 @@ abstract class XDecoratedPeer extends XWindowPeer {
} }
if (target == activeWindow && target != focusedWindow) { if (target == activeWindow && target != focusedWindow) {
// Happens when an owned window is currently focused // Happens when an owned window is currently focused
focusLog.fine("Focus is on child window - transfering it back to the owner"); focusLog.fine("Focus is on child window - transferring it back to the owner");
handleWindowFocusInSync(-1); handleWindowFocusInSync(-1);
return true; return true;
} }
......
...@@ -266,7 +266,7 @@ final class WindowsSelectorImpl extends SelectorImpl { ...@@ -266,7 +266,7 @@ final class WindowsSelectorImpl extends SelectorImpl {
private void checkForException() throws IOException { private void checkForException() throws IOException {
if (exception == null) if (exception == null)
return; return;
StringBuffer message = new StringBuffer("An exception occured" + StringBuffer message = new StringBuffer("An exception occurred" +
" during the execution of select(): \n"); " during the execution of select(): \n");
message.append(exception); message.append(exception);
message.append('\n'); message.append('\n');
......
...@@ -336,7 +336,7 @@ public class Klist { ...@@ -336,7 +336,7 @@ public class Klist {
System.out.println(" name\t name of credentials cache or " + System.out.println(" name\t name of credentials cache or " +
" keytab with the prefix. File-based cache or " " keytab with the prefix. File-based cache or "
+ "keytab's prefix is FILE:."); + "keytab's prefix is FILE:.");
System.out.println(" -c specifes that credential cache is to be " + System.out.println(" -c specifies that credential cache is to be " +
"listed"); "listed");
System.out.println(" -k specifies that key tab is to be listed"); System.out.println(" -k specifies that key tab is to be listed");
System.out.println(" options for credentials caches:"); System.out.println(" options for credentials caches:");
......
...@@ -381,12 +381,12 @@ public class Ktab { ...@@ -381,12 +381,12 @@ public class Ktab {
} }
} }
} catch (KrbException e) { } catch (KrbException e) {
System.err.println("Error occured while deleting the entry. "+ System.err.println("Error occurred while deleting the entry. "+
"Deletion failed."); "Deletion failed.");
e.printStackTrace(); e.printStackTrace();
System.exit(-1); System.exit(-1);
} catch (IOException e) { } catch (IOException e) {
System.err.println("Error occured while deleting the entry. "+ System.err.println("Error occurred while deleting the entry. "+
" Deletion failed."); " Deletion failed.");
e.printStackTrace(); e.printStackTrace();
System.exit(-1); System.exit(-1);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册