This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 172896 - [cc] expression language doesn't offer functions offered in local taglibraries
Summary: [cc] expression language doesn't offer functions offered in local taglibraries
Status: RESOLVED FIXED
Alias: None
Product: javaee
Classification: Unclassified
Component: JSP (show other bugs)
Version: 6.x
Hardware: All All
: P3 blocker (vote)
Assignee: Martin Fousek
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-09-23 15:13 UTC by Jindrich Sedek
Modified: 2012-05-03 09:51 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments
IDE log (48.98 KB, text/plain)
2010-04-19 13:22 UTC, Tomasz Slota
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Jindrich Sedek 2009-09-23 15:13:50 UTC
Create new Web application, without any changes in wizard
Create new tag library
Create new class in "test" package
Create new method in the class:
-------------
    public static String doSomething(String s) {
        return "something is done";
    }
-------------
register this method in the taglibrary:
-----------------
  <function>
    <name>funkcicka</name>
    <function-class>test.NewClass</function-class>
    <function-signature>java.lang.String doSomething(java.lang.String)</function-signature>
  </function>
------------------
declare taglib usage in index.jsp
----------
<%@taglib prefix="a" uri="/WEB-INF/tlds/newtag_library.tld" %>
----------
invoke EL cc in index.jsp:
--------
${|}
---------
declared function is not offered in cc
finish code to have ${a:funkcicka("test")} and run index.jsp to verify that whole code is correctly defined

Note:
using tag handlers are correctly offered by cc
Comment 1 Jindrich Sedek 2009-09-23 15:16:29 UTC
surprisingly it works well for standard libraries as JSTL functions: http://java.sun.com/jsp/jstl/functions
Comment 2 Tomasz Slota 2010-04-19 13:18:06 UTC
Full thread dump Java HotSpot(TM) 64-Bit Server VM (14.3-b01-101 mixed mode):

"Thread-14" prio=5 tid=0x0000000101d46000 nid=0x152201000 waiting on condition [0x0000000152200000]
   java.lang.Thread.State: WAITING (parking)
	at sun.misc.Unsafe.park(Native Method)
	- parking to wait for  <0x000000010c0773e8> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
	at java.util.concurrent.locks.LockSupport.park(LockSupport.java:158)
	at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:1925)
	at java.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:358)
	at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:947)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
	at java.lang.Thread.run(Thread.java:637)

"Inactive RequestProcessor thread [Was:TimedSoftReference/org.openide.util.TimedSoftReference]" daemon prio=1 tid=0x00000001370b3000 nid=0x139b04000 in Object.wait() [0x0000000139b03000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x000000010b27b170> (a java.lang.Object)
	at org.openide.util.RequestProcessor$Processor.run(RequestProcessor.java:1908)
	- locked <0x000000010b27b170> (a java.lang.Object)

"Parsing & Indexing Loop (100414-d8972b8cd9c3)" daemon prio=1 tid=0x00000001377f6000 nid=0x154640000 in Object.wait() [0x000000015463f000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x000000010a37b0e0> (a org.netbeans.modules.parsing.impl.TaskProcessor$CurrentRequestReference$CRRLock)
	at java.lang.Object.wait(Object.java:485)
	at org.netbeans.modules.parsing.impl.TaskProcessor$CurrentRequestReference.setCurrentTask(TaskProcessor.java:883)
	- locked <0x000000010a37b0e0> (a org.netbeans.modules.parsing.impl.TaskProcessor$CurrentRequestReference$CRRLock)
	at org.netbeans.modules.parsing.impl.TaskProcessor$CompilationJob.run(TaskProcessor.java:563)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
	at java.util.concurrent.FutureTask.run(FutureTask.java:138)
	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
	at java.lang.Thread.run(Thread.java:637)

"DestroyJavaVM" prio=5 tid=0x0000000101801800 nid=0x100601000 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"AWT-EventQueue-1" prio=6 tid=0x000000013761d000 nid=0x151287000 in Object.wait() [0x0000000151286000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x000000010b7af030> (a java.util.LinkedList)
	at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater$Task.cancelAll(RepositoryUpdater.java:3373)
	- locked <0x000000010b7af030> (a java.util.LinkedList)
	at org.netbeans.modules.parsing.impl.indexing.RepositoryUpdater.stop(RepositoryUpdater.java:202)
	at org.netbeans.modules.parsing.impl.Installer.closing(Installer.java:37)
	at org.netbeans.core.startup.NbInstaller.closing(NbInstaller.java:664)
	at org.netbeans.ModuleManager.shutDown(ModuleManager.java:1585)
	at org.netbeans.core.startup.ModuleSystem.shutDown(ModuleSystem.java:305)
	at org.netbeans.core.NbLifecycleManager.doExit(NbLifecycleManager.java:164)
	at org.netbeans.core.NbLifecycleManager.access$000(NbLifecycleManager.java:72)
	at org.netbeans.core.NbLifecycleManager$ExitActions.run(NbLifecycleManager.java:120)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:633)
	at org.netbeans.core.TimableEventQueue.dispatchEvent(TimableEventQueue.java:133)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

"TimerQueue" daemon prio=5 tid=0x0000000137783800 nid=0x14d837000 in Object.wait() [0x000000014d836000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x0000000109242980> (a javax.swing.TimerQueue)
	at javax.swing.TimerQueue.run(TimerQueue.java:232)
	- locked <0x0000000109242980> (a javax.swing.TimerQueue)
	at java.lang.Thread.run(Thread.java:637)

"Thread-3" daemon prio=5 tid=0x0000000137782000 nid=0x14ef26000 in Object.wait() [0x000000014ef25000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x0000000109077110> (a java.util.LinkedList)
	at java.lang.Object.wait(Object.java:485)
	at java.util.prefs.AbstractPreferences$EventDispatchThread.run(AbstractPreferences.java:1461)
	- locked <0x0000000109077110> (a java.util.LinkedList)

"Java2D Disposer" daemon prio=10 tid=0x0000000137227000 nid=0x14d5d3000 in Object.wait() [0x000000014d5d2000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x00000001081741d0> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
	- locked <0x00000001081741d0> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
	at sun.java2d.Disposer.run(Disposer.java:125)
	at java.lang.Thread.run(Thread.java:637)

"AWT-Shutdown" prio=5 tid=0x0000000101ace800 nid=0x14a897000 in Object.wait() [0x000000014a896000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x0000000108174200> (a java.lang.Object)
	at java.lang.Object.wait(Object.java:485)
	at sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:259)
	- locked <0x0000000108174200> (a java.lang.Object)
	at java.lang.Thread.run(Thread.java:637)

"AWT-AppKit" daemon prio=5 tid=0x00000001019dc800 nid=0x7fff705aabe0 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"CLI Requests Server" daemon prio=5 tid=0x00000001018fd800 nid=0x13a00c000 runnable [0x000000013a00b000]
   java.lang.Thread.State: RUNNABLE
	at java.net.PlainSocketImpl.socketAccept(Native Method)
	at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:390)
	- locked <0x00000001080a3548> (a java.net.SocksSocketImpl)
	at java.net.ServerSocket.implAccept(ServerSocket.java:453)
	at java.net.ServerSocket.accept(ServerSocket.java:421)
	at org.netbeans.CLIHandler$Server.run(CLIHandler.java:996)

"Active Reference Queue Daemon" daemon prio=1 tid=0x0000000101ad9000 nid=0x138613000 in Object.wait() [0x0000000138612000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x000000010826ba60> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
	- locked <0x000000010826ba60> (a java.lang.ref.ReferenceQueue$Lock)
	at org.openide.util.lookup.implspi.ActiveQueue$Impl.run(ActiveQueue.java:62)
	at java.lang.Thread.run(Thread.java:637)

"Timer-0" daemon prio=5 tid=0x00000001371a7800 nid=0x138410000 in Object.wait() [0x000000013840f000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x0000000108269a70> (a java.util.TaskQueue)
	at java.util.TimerThread.mainLoop(Timer.java:509)
	- locked <0x0000000108269a70> (a java.util.TaskQueue)
	at java.util.TimerThread.run(Timer.java:462)

"Low Memory Detector" daemon prio=5 tid=0x00000001018b7000 nid=0x13800a000 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"CompilerThread1" daemon prio=9 tid=0x00000001018b6800 nid=0x137e07000 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"CompilerThread0" daemon prio=9 tid=0x00000001018b5800 nid=0x137c04000 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"JDWP Event Helper Thread" daemon prio=5 tid=0x0000000137004000 nid=0x137a01000 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"JDWP Transport Listener: dt_socket" daemon prio=5 tid=0x0000000137003000 nid=0x136e07000 runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" daemon prio=9 tid=0x0000000137000000 nid=0x136c04000 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Surrogate Locker Thread (CMS)" daemon prio=5 tid=0x00000001018b5000 nid=0x136a01000 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" daemon prio=8 tid=0x000000010189f000 nid=0x135c60000 in Object.wait() [0x0000000135c5f000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x000000010826bb80> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:118)
	- locked <0x000000010826bb80> (a java.lang.ref.ReferenceQueue$Lock)
	at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:134)
	at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:159)

"Reference Handler" daemon prio=10 tid=0x000000010189e800 nid=0x135a5d000 in Object.wait() [0x0000000135a5c000]
   java.lang.Thread.State: WAITING (on object monitor)
	at java.lang.Object.wait(Native Method)
	- waiting on <0x0000000108174218> (a java.lang.ref.Reference$Lock)
	at java.lang.Object.wait(Object.java:485)
	at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:116)
	- locked <0x0000000108174218> (a java.lang.ref.Reference$Lock)

"VM Thread" prio=9 tid=0x0000000101897000 nid=0x13585a000 runnable 

"Gang worker#0 (Parallel GC Threads)" prio=9 tid=0x0000000101802800 nid=0x105405000 runnable 

"Gang worker#1 (Parallel GC Threads)" prio=9 tid=0x0000000101803800 nid=0x105608000 runnable 

"Concurrent Mark-Sweep GC Thread" prio=9 tid=0x0000000101843000 nid=0x1354fc000 runnable 
"VM Periodic Task Thread" prio=10 tid=0x0000000137002800 nid=0x13820d000 waiting on condition 

"Exception Catcher Thread" prio=10 tid=0x0000000101802000 nid=0x102201000 runnable 
JNI global references: 20094
Comment 3 Tomasz Slota 2010-04-19 13:22:42 UTC
Created attachment 97622 [details]
IDE log
Comment 4 Tomasz Slota 2010-04-19 13:46:33 UTC
please disregard my comments #2 and #3, they were obviously meant for another issue
Comment 5 Tomasz Slota 2010-04-19 14:20:28 UTC
Reproducible. In the log file there is a message:

Invalid function signature 'java.lang.String
doSomething(java.lang.String)' (doesn't contain function name) in newtag_library tag library.

but actually the signature looks correct and it still happens when I change the function_name to match the signature...
Comment 6 Martin Fousek 2012-05-02 06:07:08 UTC
Local taglibraries will be offered now.

Fixed in web-main #1ca98cad218f.
Comment 7 Quality Engineering 2012-05-03 09:51:38 UTC
Integrated into 'main-golden', will be available in build *201205030400* on http://bits.netbeans.org/dev/nightly/ (upload may still be in progress)
Changeset: http://hg.netbeans.org/main-golden/rev/1ca98cad218f
User: Martin Fousek <marfous@netbeans.org>
Log: #172896 - [cc] expression language doesn't offer functions offered in local taglibraries