JDK-4788054 : JFileChooser filter throws exception on filter *.*) on Windows
  • Type: Bug
  • Component: client-libs
  • Sub-Component: javax.swing
  • Affected Version: 1.4.1
  • Priority: P4
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows_2000
  • CPU: x86
  • Submitted: 2002-12-04
  • Updated: 2002-12-04
  • Resolved: 2002-12-04
Related Reports
Duplicate :  
Description

Name: jk109818			Date: 12/03/2002


FULL PRODUCT VERSION :
java version "1.4.0_03"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.0_03-b04)
Java HotSpot(TM) Client VM (build 1.4.0_03-b04, mixed mode)
AND
java version "1.4.1_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_01-b01)
Java HotSpot(TM) Client VM (build 1.4.1_01-b01, mixed mode)

FULL OPERATING SYSTEM VERSION :
Microsoft Windows 2000 [Version 5.00.2195]

ADDITIONAL OPERATING SYSTEMS :
NONE


EXTRA RELEVANT SYSTEM CONFIGURATION :
Win 2k service pack 3


A DESCRIPTION OF THE PROBLEM :
Accidently typed *.*) into the file chooser and an exception
was thrown. This behavior can be seen in the shipped
MetalWorks demo jar file

NOTE: Tried this on Linux also and it did not throw an exception

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Start MetalWorks demo shipped with JDK
2. Open file
3.  Type *.*) as the file
4. See the caught regexp exception (this should be handled
silently)

EXPECTED VERSUS ACTUAL BEHAVIOR :
No exception thrown to user
(This is the behavior on Linux)

ERROR MESSAGES/STACK TRACES THAT OCCUR :
C:\java\jdk1.4.0\demo\jfc\Metalworks>java -jar Metalworks.jar
Exception occurred during event dispatching:
java.util.regex.PatternSyntaxException: Unmatched closing ')' near index 4
.*..*)
    ^
        at java.util.regex.Pattern.error(Pattern.java:1472)
        at java.util.regex.Pattern.compile(Pattern.java:1262)
        at java.util.regex.Pattern.<init>(Pattern.java:1013)
        at java.util.regex.Pattern.compile(Pattern.java:783)
        at javax.swing.plaf.basic.BasicFileChooserUI$GlobFilter.setPattern(Basic
FileChooserUI.java:913)
        at javax.swing.plaf.basic.BasicFileChooserUI$ApproveSelectionAction.acti
onPerformed(BasicFileChooserUI.java:756)
        at javax.swing.SwingUtilities.notifyAction(SwingUtilities.java:1502)
        at javax.swing.JComponent.processKeyBinding(JComponent.java:2422)
        at javax.swing.JComponent.processKeyBindings(JComponent.java:2468)
        at javax.swing.JComponent.processKeyEvent(JComponent.java:2385)
        at java.awt.Component.processEvent(Component.java:4831)
        at java.awt.Container.processEvent(Container.java:1525)
        at java.awt.Component.dispatchEventImpl(Component.java:3527)
        at java.awt.Container.dispatchEventImpl(Container.java:1582)
        at java.awt.Component.dispatchEvent(Component.java:3368)
        at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.ja
va:1700)
        at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboard
FocusManager.java:568)
        at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeybo
ardFocusManager.java:740)
        at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeybo
ardFocusManager.java:673)
        at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFoc
usManager.java:534)
        at java.awt.Component.dispatchEventImpl(Component.java:3397)
        at java.awt.Container.dispatchEventImpl(Container.java:1582)
        at java.awt.Window.dispatchEventImpl(Window.java:1586)
        at java.awt.Component.dispatchEvent(Component.java:3368)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:445)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:191)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:144)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:134)
        at java.awt.Dialog.show(Dialog.java:524)
        at javax.swing.JFileChooser.showDialog(JFileChooser.java:696)
        at javax.swing.JFileChooser.showOpenDialog(JFileChooser.java:599)
        at MetalworksFrame.openDocument(MetalworksFrame.java:243)
        at MetalworksFrame$3.actionPerformed(MetalworksFrame.java:102)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:17
67)
        at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Abstra
ctButton.java:1820)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
.java:419)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:257
)
        at javax.swing.AbstractButton.doClick(AbstractButton.java:289)
        at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1
096)
        at javax.swing.plaf.basic.BasicMenuItemUI$MouseInputHandler.mouseRelease
d(BasicMenuItemUI.java:932)
        at java.awt.Component.processMouseEvent(Component.java:5022)
        at java.awt.Component.processEvent(Component.java:4819)
        at java.awt.Container.processEvent(Container.java:1525)
        at java.awt.Component.dispatchEventImpl(Component.java:3527)
        at java.awt.Container.dispatchEventImpl(Container.java:1582)
        at java.awt.Component.dispatchEvent(Component.java:3368)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3359
)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3074)

        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3004)
        at java.awt.Container.dispatchEventImpl(Container.java:1568)
        at java.awt.Window.dispatchEventImpl(Window.java:1586)
        at java.awt.Component.dispatchEvent(Component.java:3368)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:445)
        at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
read.java:191)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
ad.java:144)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)

        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:130)

        at java.awt.EventDispatchThread.run(EventDispatchThread.java:98)

REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
See the MetalWorks demo jar shipped with JDK
---------- END SOURCE ----------

CUSTOMER WORKAROUND :
Our own try catch to silence this
(Review ID: 178513) 
======================================================================