diff --git a/sources/net.sf.j2s.java.core/ScanTest_input.txt b/sources/net.sf.j2s.java.core/ScanTest_input.txt new file mode 100644 index 000000000..e0d3d8a8b --- /dev/null +++ b/sources/net.sf.j2s.java.core/ScanTest_input.txt @@ -0,0 +1,438 @@ +# Data for fromFileTest +14343441 +24134342 +34324233 +43234234 +53423425 +63424326 +74324337 + + +# Data for usage case 1 +23.4 Frank 34.8 -9.0 +2.333 6.75 Joe -2 +3.3 -888.8 -16.00 Mary +Michelle -5 -5.5 -5.555 + + +# Data for usage case 2 +cat-9-dog-6-pig-2--5- + + +# Data for usage case 3 + /** + * Returns the next string in the input that matches the specified pattern. + * This method may block while waiting for input + * to scan, even if a previous invocation of {@link #hasNext(Pattern)} + * returned true. If the match is successful, the scanner + * advances past the input that matched the pattern. + * + * @param pattern the pattern to scan for + * @return the next token + * @throws NoSuchElementException if no more tokens are available + * @throws IllegalStateException if this scanner is closed + */ + + +# Data for usage case 4 + + +Source Directory +

tiger

+

+Parent workspace is /java/jdk/1.5/ws/integration/TL/j2se
+Child workspace is /export/tiger
+


+ +

+Diffs +Sdiffs +Old +New +make/java/java/mapfile-vers

+

+

+Diffs +Sdiffs +Old +New +src/share/classes/java/lang/Shutdown.java

+

+

+Diffs +Sdiffs +Old +New +src/share/native/java/lang/Shutdown.c

+

+
+

+ + + +# Data for usage case 5 + +# This is the main Samba configuration file. You should read the +# smb.conf(5) manual page in order to understand the options listed +# here. Samba has a huge number of configurable options (perhaps too +# many!) most of which are not shown in this example +# +# Any line which starts with a ; (semi-colon) or a # (hash) +# is a comment and is ignored. In this example we will use a # +# for commentry and a ; for parts of the config file that you +# may wish to enable +# +# NOTE: Whenever you modify this file you should run the command "testparm" +# to check that you have not many any basic syntactic errors. +# +#======================= Global Settings ===================================== +[global] + +## +## Basic Server Settings +## + + # workgroup = NT-Domain-Name or Workgroup-Name, eg: REDHAT4 + workgroup = MYGROUP + + # server string is the equivalent of the NT Description field + server string = Samba Server + + # This option is important for security. It allows you to restrict + # connections to machines which are on your local network. The + # following example restricts access to two C class networks and + # the "loopback" interface. For more examples of the syntax see + # the smb.conf man page + ; hosts allow = 192.168.1. 192.168.2.0./24 192.168.3.0/255.255.255.0 127.0.0.1 + + # Uncomment this if you want a guest account, you must add this to /etc/passwd + # otherwise the user "nobody" is used + ; guest account = pcguest + + # this tells Samba to use a separate log file for each machine + # that connects + log file = /usr/local/samba/var/log.%m + + # How much information do you want to see in the logs? + # default is only to log critical messages + ; log level = 1 + + # Put a capping on the size of the log files (in Kb). + max log size = 50 + + # Security mode. Most people will want user level security. See + # security_level.txt for details. + security = user + + # Using the following line enables you to customise your configuration + # on a per machine basis. The %m gets replaced with the netbios name + # of the machine that is connecting. + # Note: Consider carefully the location in the configuration file of + # this line. The included file is read at that point. + ; include = /usr/local/samba/lib/smb.conf.%m + + # Most people will find that this option gives better performance. + # See speed.txt and the manual pages for details + # You may want to add the following on a Linux system: + # SO_RCVBUF=8192 SO_SNDBUF=8192 + ; socket options = TCP_NODELAY + + # Configure Samba to use multiple interfaces + # If you have multiple network interfaces and want to limit smbd will + # use, list the ones desired here. Otherwise smbd & nmbd will bind to all + # active interfaces on the system. See the man page for details. + ; interfaces = 192.168.12.2/24 192.168.13.2/24 + + # Should smbd report that it has MS-DFS Capabilities? Only available + # if --with-msdfs was passed to ./configure + ; host msdfs = yes + +## +## Network Browsing +## + # set local master to no if you don't want Samba to become a master + # browser on your network. Otherwise the normal election rules apply + ; local master = no + + # OS Level determines the precedence of this server in master browser + # elections. The default value (20) should be reasonable + ; os level = 20 + + # Domain Master specifies Samba to be the Domain Master Browser. This + # allows Samba to collate browse lists between subnets. Don't use this + # if you already have a Windows NT domain controller doing this job + ; domain master = yes + + # Preferred Master causes Samba to force a local browser election on startup + # and gives it a slightly higher chance of winning the election + ; preferred master = yes + + +## +## WINS & Name Resolution +## + # Windows Internet Name Serving Support Section: + # WINS Support - Tells the NMBD component of Samba to enable it's WINS Server + ; wins support = yes + + # WINS Server - Tells the NMBD components of Samba to be a WINS Client + # Note: Samba can be either a WINS Server, or a WINS Client, but NOT both + ; wins server = w.x.y.z + + # WINS Proxy - Tells Samba to answer name resolution queries on + # behalf of a non WINS capable client, for this to work there must be + # at least one WINS Server on the network. The default is NO. + ; wins proxy = yes + + # DNS Proxy - tells Samba whether or not to try to resolve NetBIOS names + # via DNS nslookups. + dns proxy = no + + +## +## Passwords & Authentication +## + # Use password server option only with security = server + # The argument list may include: + # password server = My_PDC_Name [My_BDC_Name] [My_Next_BDC_Name] + # or to auto-locate the domain controller/s + ; password server = * + ; password server = + + # You may wish to use password encryption. Please read + # ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba documentation. + # Do not enable this option unless you have read those documents + ; encrypt passwords = yes + + # Should smbd obey the session and account lines in /etc/pam.d/samba ? + # only available if --with-pam was used at compile time + ; obey pam restrictions = yes + + # When using encrypted passwords, Samba can synchronize the local + # UNIX password as well. You will also need the "passwd chat" parameters + ; unix password sync = yes + + # how should smbd talk to the local system when changing a UNIX + # password? See smb.conf(5) for details + ; passwd chat = + + # This is only available if you compiled Samba to include --with-pam + # Use PAM for changing the password + ; pam password change = yes + +## +## Domain Control +## + # Enable this if you want Samba act as a domain controller. + # make sure you have read the Samba-PDC-HOWTO included in the documentation + # before enabling this parameter + ; domain logons = yes + + # if you enable domain logons then you may want a per-machine or + # per user logon script + # run a specific logon batch file per workstation (machine) + ; logon script = %m.bat + # run a specific logon batch file per username + ; logon script = %U.bat + + # Where to store roving profiles (only for Win95 and WinNT) + # %L substitutes for this servers netbios name, %U is username + # You must uncomment the [Profiles] share below + ; logon path = \\%L\Profiles\%U + + # UNC path specifying the network location of the user's home directory + # only used when acting as a DC for WinNT/2k/XP. Ignored by Win9x clients + ; logon home = \\%L\%U + + # What drive should the "logon home" be mounted at upon login ? + # only used when acting as a DC for WinNT/2k/XP. Ignored by Win9x clients + ; logon drive = H: + +## +## Printing +## + + # If you want to automatically load your printer list rather + # than setting them up individually then you'll need this + load printers = yes + + # you may wish to override the location of the printcap file + ; printcap name = /etc/printcap + + # on SystemV system setting printcap name to lpstat should allow + # you to automatically obtain a printer list from the SystemV spool + # system + ; printcap name = lpstat + + # It should not be necessary to specify the print system type unless + # it is non-standard. Currently supported print systems include: + # bsd, sysv, plp, lprng, aix, hpux, qnx + ; printing = bsd + + # Enable this to make Samba 2.2 behavior just like Samba 2.0 + # not recommended nuless you are sure of what you are doing + ; disable spoolss = yes + + # list of users and groups which should be able to remotely manage + # printer drivers installed on the server + ; printer admin = root, +ntadmin + + +## +## Winbind +## + + # specify the uid range which can be used by winbindd + # to allocate uids for Windows users as necessary + ; winbind uid = 10000-65000 + + # specify the uid range which can be used by winbindd + # to allocate uids for Windows users as necessary + ; winbind gid = 10000-65000 + + # Define a home directory to be given to passwd(5) style entries + # generated by libnss_winbind.so. You can use variables here + ; winbind template homedir = /home/%D/%U + + # Specify a shell for all winbind user entries return by the + # libnss_winbind.so library. + ; winbind template shell = /bin/sh + + # What character should be used to separate the DOMAIN and Username + # for a Windows user. The default is DOMAIN\user, but many people + # prefer DOMAIN+user + ; winbind separator = + + + +#============================ Share Definitions ============================== +[homes] + comment = Home Directories + browseable = no + writable = yes + valid users = %S + +# Un-comment the following and create the netlogon directory for Domain Logons +; [netlogon] +; comment = Network Logon Service +; path = /usr/local/samba/lib/netlogon +; guest ok = yes +; writable = no +; share modes = no + + +# Un-comment the following to provide a specific roving profile share +# the default is to use the user's home directory +;[Profiles] +; path = /usr/local/samba/profiles +; browseable = no +; guest ok = yes + + +# NOTE: If you have a BSD-style print system there is no need to +# specifically define each individual printer +[printers] + comment = All Printers + path = /usr/spool/samba + browseable = no + # Set public = yes to allow user 'guest account' to print + guest ok = no + writable = no + printable = yes + +# This one is useful for people to share files +#[tmp] +# comment = Temporary file space +# path = /tmp +# read only = no +# public = yes + + +# MS-DFS support is only available if Samba was compiled to +# include --with-msdfs +;[dfsroot] +; dfs root = yes + + +# A publicly accessible directory, but read only, except for people in +# the "staff" group +;[public] +; comment = Public Stuff +; path = /home/samba +; public = yes +; writable = yes +; printable = no +; write list = @staff + + +## +## Other examples. +## + +# A private printer, usable only by fred. Spool data will be placed in fred's +# home directory. Note that fred must have write access to the spool directory, +# wherever it is. +#[fredsprn] +# comment = Fred's Printer +# valid users = fred +# path = /homes/fred +# printer = freds_printer +# public = no +# writable = no +# printable = yes + +# A private directory, usable only by fred. Note that fred requires write +# access to the directory. +#[fredsdir] +# comment = Fred's Service +# path = /usr/somewhere/private +# valid users = fred +# public = no +# writable = yes +# printable = no + +# a service which has a different directory for each machine that connects +# this allows you to tailor configurations to incoming machines. You could +# also use the %U option to tailor it by user name. +# The %m gets replaced with the machine name that is connecting. +#[pchome] +# comment = PC Directories +# path = /usr/pc/%m +# public = no +# writable = yes + +# A publicly accessible directory, read/write to all users. Note that all files +# created in the directory by users will be owned by the default user, so +# any user with access can delete any other user's files. Obviously this +# directory must be writable by the default user. Another user could of course +# be specified, in which case all files would be owned by that user instead. +#[public] +# path = /usr/somewhere/else/public +# public = yes +# only guest = yes +# writable = yes +# printable = no + +# The following two entries demonstrate how to share a directory so that two +# users can place files there that will be owned by the specific users. In this +# setup, the directory should be writable by both users and should have the +# sticky bit set on it to prevent abuse. Obviously this could be extended to +# as many users as required. +#[myshare] +# comment = Mary's and Fred's stuff +# path = /usr/somewhere/shared +# valid users = mary fred +# public = no +# writable = yes +# printable = no +# create mask = 0765 + + + + +# Data for usage case 6 diff --git a/sources/net.sf.j2s.java.core/src/java/util/InputMismatchException.java b/sources/net.sf.j2s.java.core/src/java/util/InputMismatchException.java new file mode 100644 index 000000000..e4d1ce34b --- /dev/null +++ b/sources/net.sf.j2s.java.core/src/java/util/InputMismatchException.java @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2003, 2008, Oracle and/or its affiliates. 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. Oracle designates this + * particular file as subject to the "Classpath" exception as provided + * by Oracle in the LICENSE file that accompanied this code. + * + * 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +package java.util; + +/** + * Thrown by a Scanner to indicate that the token + * retrieved does not match the pattern for the expected type, or + * that the token is out of range for the expected type. + * + * @author unascribed + * @see java.util.Scanner + * @since 1.5 + */ +public +class InputMismatchException extends NoSuchElementException { + private static final long serialVersionUID = 8811230760997066428L; + + /** + * Constructs an InputMismatchException with null + * as its error message string. + */ + public InputMismatchException() { + super(); + } + + /** + * Constructs an InputMismatchException, saving a reference + * to the error message string s for later retrieval by the + * getMessage method. + * + * @param s the detail message. + */ + public InputMismatchException(String s) { + super(s); + } +} diff --git a/sources/net.sf.j2s.java.core/src/test/ScanTest.java b/sources/net.sf.j2s.java.core/src/test/ScanTest.java new file mode 100644 index 000000000..251716256 --- /dev/null +++ b/sources/net.sf.j2s.java.core/src/test/ScanTest.java @@ -0,0 +1,1512 @@ +package test; + +import java.io.File; +import java.io.IOException; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.nio.CharBuffer; +import java.text.NumberFormat; + +/* + * Copyright (c) 2003, 2015, Oracle and/or its affiliates. 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA + * or visit www.oracle.com if you need additional information or have any + * questions. + */ + +/** + * @test + * @bug 4313885 4926319 4927634 5032610 5032622 5049968 5059533 6223711 6277261 6269946 6288823 + * @summary Basic tests of java.util.Scanner methods + * @key randomness + */ +import java.util.ArrayList; +import java.util.InputMismatchException; +import java.util.List; +import java.util.Locale; +import java.util.NoSuchElementException; +import java.util.Random; +import java.util.Scanner; +import java.util.regex.MatchResult; +import java.util.regex.Pattern; + +public class ScanTest { + + private static boolean failure = false; + private static int failCount = 0; + private static int NUM_SOURCE_TYPES = 2; + + public static void main(String[] args) throws Exception { + Locale reservedLocale = Locale.getDefault(); + String lang = reservedLocale.getLanguage(); + try { + if (!"en".equals(lang) && + !"zh".equals(lang) && + !"ko".equals(lang) && + !"ja".equals(lang)) { + //Before we have resource to improve the test to be ready for + //arbitrary locale, force the default locale to be "English" + //for now. + Locale.setDefault(Locale.ENGLISH); + } + skipTest(); + findInLineTest(); + findWithinHorizonTest(); + findInEmptyLineTest(); + removeTest(); + fromFileTest(); + ioExceptionTest(); + matchTest(); + delimiterTest(); + useLocaleTest(); + closeTest(); + cacheTest(); + cacheTest2(); + nonASCIITest(); + resetTest(); + + for (int j=0; j\n]+"); + sc.next(); + String textOfRef = sc.next(); + if (!textOfRef.equals(expected[i])) + failCount++; + } + // Read some html tags using < and > as delimiters + if (!sc.next().equals("/a")) + failCount++; + if (!sc.next().equals("b")) + failCount++; + + // Scan some html tags using skip and next + Pattern nonTagStart = Pattern.compile("[^<]+"); + Pattern tag = Pattern.compile("<[^>]+?>"); + Pattern spotAfterTag = Pattern.compile("(?<=>)"); + String[] expected2 = { "", "

", "